测试开发学习中。。。。
1.数组去重原地修改返回新长度int removeDuplicates(int nums[], int size) { if (size 0) return 0; // 慢指针从0开始第一个元素必然保留 int slow 0; for (int fast 1; fast size; fast) { // 快慢值不同说明是新元素 if (nums[fast] ! nums[slow]) { slow; nums[slow] nums[fast]; // 原地覆盖 } } // slow是下标长度需要1 return slow 1; }2.移动零把数组全部 0 挪到末尾其他元素顺序不变void moveZeroes(int nums[], int size) { // slow存放非0元素的下一个位置 int slow 0; // fast遍历数组找所有非0数字 for (int fast 0; fast size; fast) { if (nums[fast] ! 0) { // 把非0数字挪到slow位置 nums[slow] nums[fast]; slow; } } // slow前面全是非0slow到末尾全部填0 for (int i slow; i size; i) { nums[i] 0; } }3.合并区间将重叠区间合并#include stdlib.h /* 比较函数按照区间左端点排序 */ int cmp(const void *a, const void *b) { int *x *(int **)a; int *y *(int **)b; return x[0] - y[0]; } /** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned in *returnColumnSizes. */ int** merge(int** intervals, int intervalsSize, int* intervalsColSize, int* returnSize, int** returnColumnSizes) { if (intervalsSize 0) { *returnSize 0; *returnColumnSizes NULL; return NULL; } /* 1. 按照左端点排序 */ qsort(intervals, intervalsSize, sizeof(int *), cmp); /* 2. 开辟结果数组 */ int **result (int **)malloc(sizeof(int *) * intervalsSize); *returnColumnSizes (int *)malloc(sizeof(int) * intervalsSize); int count 0; /* 3. 合并区间 */ for (int i 0; i intervalsSize; i) { /* 第一个区间或者没有重叠 */ if (count 0 || intervals[i][0] result[count - 1][1]) { result[count] (int *)malloc(sizeof(int) * 2); result[count][0] intervals[i][0]; result[count][1] intervals[i][1]; (*returnColumnSizes)[count] 2; count; } else { /* 有重叠更新右端点 */ if (intervals[i][1] result[count - 1][1]) { result[count - 1][1] intervals[i][1]; } } } *returnSize count; return result; }4.给定数组输出全部子数组求每个子数组最大最小差值之和class Solution { public: long long subArrayRanges(vectorint nums) { long long ans 0; int n nums.size(); for (int i 0; i n; i) { int maxVal nums[i]; int minVal nums[i]; for (int j i; j n; j) { maxVal max(maxVal, nums[j]); minVal min(minVal, nums[j]); ans maxVal - minVal; } } return ans; } };5.三数之和数组找三元组和为 0int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; } /** * param nums 输入数组 * param numsSize 数组长度 * param returnSize 返回结果二维数组行数 * param returnColumnSizes 每行元素个数固定为3 * return 二维数组存储所有三元组 */ int** threeSum(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) { *returnSize 0; if (numsSize 3) return NULL; // 排序 qsort(nums, numsSize, sizeof(int), cmp); // 动态分配结果空间最多 n^2 组这里预分配足够大 int maxAns numsSize * numsSize; int** res (int**)malloc(maxAns * sizeof(int*)); *returnColumnSizes (int*)malloc(maxAns * sizeof(int)); for (int i 0; i numsSize; i) { int a nums[i]; // 第一个数大于0后面不可能和为0 if (a 0) break; // 去重和上一个a相同跳过 if (i 0 nums[i] nums[i - 1]) continue; int l i 1; int r numsSize - 1; while (l r) { int b nums[l]; int c nums[r]; int sum a b c; if (sum 0) { // 存入答案 res[*returnSize] (int*)malloc(3 * sizeof(int)); res[*returnSize][0] a; res[*returnSize][1] b; res[*returnSize][2] c; (*returnColumnSizes)[*returnSize] 3; (*returnSize); // 跳过左侧重复 while (l r nums[l] nums[l 1]) l; // 跳过右侧重复 while (l r nums[r] nums[r - 1]) r--; l; r--; } else if (sum 0) { l; // 和太小左指针右移 } else { r--; // 和太大右指针左移 } } } return res; }

相关新闻

算法(23):heapsort-8.3一种先构建再排序的排序方法

算法(23):heapsort-8.3一种先构建再排序的排序方法

堆排序的物理本质只有两阶段:先原地建堆,再反复摘取最大值放到数组末尾。Page 30(堆排序基本计划)物理内容: 堆排序做两件事:建堆:把无序数组变成一个最大堆(根节点最大)…

2026/10/16 6:15:32 阅读更多 →
Day49-AI微服务化-将大模型能力封装为标准微服务

Day49-AI微服务化-将大模型能力封装为标准微服务

把大模型当作一个普通的HTTP微服务来对待,是这一代Java工程师必须建立的工程思维。 今天这篇,我会用我们项目组的真实改造过程为例,从架构分层、代码实现到模型路由,一步步把AI能力封装成「别的业务系统愿意调用」的微服务。 一、…

2026/10/16 6:14:06 阅读更多 →
【数据结构】二叉树的存储结构(顺序/链式)

【数据结构】二叉树的存储结构(顺序/链式)

考点频率:★★★★☆(选择题常考,是理解二叉树遍历和操作的基础) 难度:⭐⭐ 建议:重点掌握顺序存储的适用范围(完全二叉树)和链式存储的节点结构 1️⃣ 存储结构概述 在上一篇文章中…

2026/10/16 6:55:17 阅读更多 →

最新新闻

从0到1构建AI原生应用的用户意图理解模块

从0到1构建AI原生应用的用户意图理解模块

两年前我第一次在真实项目里负责意图理解模块,犯过一个特别典型的错误:花了整整三周训练了一个文本分类模型,结果上线第一天就被一条用户话术打懵——"你帮我看看明天天气怎么样,顺便把闹钟调到七点"。一句话里包含两个…

2026/10/17 7:45:12 阅读更多 →
寄存器验证的设计陷阱:从RDL到UVM RAL的隐性风险与对策

寄存器验证的设计陷阱:从RDL到UVM RAL的隐性风险与对策

1. 寄存器验证在芯片流程中的位置:为什么它最容易变成"背锅侠"先说一个我自己亲眼见过的场景。某次某个项目回片之后,软件同事拿着驱动代码来找验证团队,说寄存器读回来的值乱七八糟,怀疑硬件有bug。验证团队翻出回归记…

2026/10/17 7:45:12 阅读更多 →
AI原生应用意图理解全攻略:从数据构造到服务化落地

AI原生应用意图理解全攻略:从数据构造到服务化落地

做AI原生应用这一年多,我最大的感触是:很多团队把精力全砸在模型参数和Prompt模板上,却把一个最基础、最决定体验的模块给看轻了——用户意图理解。你产品功能再强,模型再大,用户一句话进来,你连他到底想干什么都没接住…

2026/10/17 7:45:12 阅读更多 →
OpenClaw(Clawdbot)实战:AI自动化代理框架部署与原理详解

OpenClaw(Clawdbot)实战:AI自动化代理框架部署与原理详解

上周有个做自动化的朋友跑来问我:“OpenClaw是什么?怎么到处都在说6分钟从零到一部署,这玩意和之前那些AI工具到底有啥区别?”我被他问得一时语塞,因为OpenClaw(Clawdbot)这个项目在大半年前还只…

2026/10/17 7:45:12 阅读更多 →
LightningChart在能源监控可视化中的性能优势与落地实践

LightningChart在能源监控可视化中的性能优势与落地实践

做能源监控系统的朋友应该都有同感:设备越来越多,测点越来越密,数据越来越快。一个风电场的SCADA数据、储能BMS的毫秒级波动、光伏逆变器的功率曲线,用传统图表库去推,拖个缩放都能把CPU拉满,画面掉帧掉到客…

2026/10/17 7:45:12 阅读更多 →
Win7老电脑本地跑AI:轻量模型与ONNX Runtime部署指南

Win7老电脑本地跑AI:轻量模型与ONNX Runtime部署指南

说起来你可能不信,我手里有台尘封多年的Win7老本子,最近被我翻出来装了个本地AI模型。别人跑大模型动辄几张显卡,我这台老伙计连AVX2指令集都悬,愣是跑起来了,效果还挺香。这事儿要是放在一两年以前,想都不…

2026/10/17 7:44:12 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →