news 2026/6/15 21:03:30

删除有序数组中的重复项(c语言版)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
删除有序数组中的重复项(c语言版)

一个普通的随机数组,里面有很多的重复数字,我们需要把里面的重复数字去掉一个,并保持顺序一致

1、代码预览

intremoveDuplicates(int*num,intnumSize){if(numSize==0){return0;}inti=1;for(intj=1;j<numSize;j++){if(nums[j]=nums[i-1]){}}}

2、代码解析

if(numsSize==0){return0;}

这里的numSize指的是数组的元素数量,如果它等于零就是空数组,返回值为0

inti=1;for(intj=1;j<numsSize;j++){if(nums[j]!=nums[i-1]){nums[i]=nums[j];i++;}}

这里的i被定义为新数组的尾指针,指向当前有效元素的下一个位置
j是遍历数组的扫描指针,当发现当前元素与钱一个有效元素不同时,将当前元素放到新数组的尾部,新数组长度加1

我来举个例子,一个数组nums[1,1,2,3,3],numSize;
第一轮时:j=1,nums[j]=1,nums[i-1]=nums[0]=1,i保持1,元素重复跳过
第二轮:j=2,nums[i-1]=1,确实不相等,数组变化,2放到i=1时,i后移
第三轮:j=3,nums[j]=3,i=2,nums[i-1]=2,不相等,i变成3,3放到i=2的位置,i后移
第四轮:j=4,nums[j]=3,nums[j-1]=3,相等,所以i保持3,元素重复跳过
最后返回新数组的长度

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 15:02:00

Kadane算法详解

一.什么是Kadane算法&#xff1a; Kadane算法&#xff0c;又名卡丹算法&#xff0c;是一种高效解决最大子数组和问题的动态规划算法&#xff0c;该算法以简单高效而出名 二.算法核心思想&#xff1a; 通过迭代数组的每个元素&#xff0c;维护两个变量来跟踪局部最优解和全局最优…

作者头像 李华
网站建设 2026/6/15 10:40:04

提示管理平台架构设计:如何实现提示的自动化编排?

提示管理平台架构设计:如何实现提示的自动化编排? 一、引入:从“手动调参”到“自动编排”的痛点与需求 1. 一个真实的开发场景 假设你是某电商平台的AI产品经理,正在优化客服机器人的提示工程。最近遇到一个棘手问题: 用户问“我的快递怎么还没到?”,机器人需要先调…

作者头像 李华
网站建设 2026/6/15 10:38:53

Typescript - interface 关键字(通俗易懂的详细教程)

前言 简单来说&#xff0c;Interface 就是一种描述对象或函数的东西。 您可以把 interface 理解为形状&#xff0c;真实开发情况下&#xff0c;一个对象需要有什么样的属性&#xff0c;函数需要什么参数或返回什么样的值&#xff0c;数组应该是什么样子的&#xff0c;一个类和继…

作者头像 李华
网站建设 2026/6/15 18:35:07

Typescript - 类型守卫(typeof / in / instanceof / 自定义类型保护的类型谓词)通俗易懂详细教程

前言 类型守卫用于获取变量类型信息&#xff0c;通常使用在条件块语句中。类型守卫是返回布尔值的常规函数&#xff0c;接受一个类型并告诉 TypeScript 是否可以缩小到更具体的类型。类型守卫具有唯一的属性&#xff0c;可以确保测试的值返回的是布尔值类型。 TypeScript 使用了…

作者头像 李华
网站建设 2026/6/15 10:43:02

Elasticsearch慢查询优化:大数据场景下定位与解决方法

Elasticsearch慢查询优化&#xff1a;大数据场景下定位与解决方法 引言&#xff1a;为什么慢查询会成为大数据场景的“隐形杀手”&#xff1f; 想象一个场景&#xff1a;你是某电商平台的搜索工程师&#xff0c;凌晨3点突然收到告警——商品搜索接口的95分位延迟从500ms飙升到…

作者头像 李华
网站建设 2026/6/15 10:38:50

C++初识

一&#xff1a;关键字 auto关键字 int main() {int a 0;int b a;auto c a; //根据右边的表达式自动推导c的类型auto d 11.1; //根据右边的表达式自动推导d的类型//typeid()查看变量类型cout << typeid(c).name() <<endl; cout << typeid(d).name() &…

作者头像 李华