当前位置: 首页 > news >正文

删除有序数组中的重复项(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,元素重复跳过
最后返回新数组的长度

http://www.jsqmd.com/news/323326/

相关文章:

  • Kadane算法详解
  • 3376. 成绩排序2
  • 寒假6
  • 前后端分离项目多环境配置完整笔记
  • 2024最新大数据架构趋势:云原生与湖仓一体实战
  • 067.我的新博客,快来一睹为快
  • 互联网大厂Java面试:从数据库到微服务的技术串讲
  • 工作记忆在AI原生游戏NPC中的革命性应用
  • 为什么独立站出海有前途?
  • webpack - 单独打包指定JS文件(因为不确定打出的前端包所访问的后端IP,需要对项目中IP配置文件单独拿出来,方便运维部署的时候对IP做修改)
  • python_django微信小程序的社区团购系统
  • Kafka 消息分区机制在大数据中的应用
  • webpack - webpack 提取 css 成单独文件、css 兼容性处理、压缩 css 等详细教程操作(示例解析 webpack 提取 css 为单独文件)
  • rustdesk自建服务器
  • 现代AI系统的六大完整技术体系概览
  • 提示管理平台架构设计:如何实现提示的自动化编排?
  • 动物粪便标本如何长期保存?中国科学院成都生物研究所研究团队提出一种可实现粪便形态、遗传信息及相关分析要素长期保存的标准化制备方法
  • shell实现根据输入的文字打印出大号字符艺术
  • Typescript - interface 关键字(通俗易懂的详细教程)
  • AI测试领域2025年度大事件盘点:标准确立、技术跃迁与市场领航
  • FoundIR: Unleashing Million-scale Training Data to Advance Foundation Models-ICCV2025
  • 魔法登录antigravity
  • Typescript - 类型守卫(typeof / in / instanceof / 自定义类型保护的类型谓词)通俗易懂详细教程
  • python_django基于微信小程序的移动医院挂号预约系统
  • 接口(集成)平台设计(一)-服务,接口,数据集和数据源
  • python_django基于微信小程序的竞赛报名系统_13348
  • 权威测评|微信小程序公司 TOP 名单,教你锁定适配服务商
  • python_django基于微信小程序的自习室座位预约付费打卡系统
  • 小程序 SaaS 制作平台超全攻略,找对适配伙伴赋能创业
  • python_django基于微信小程序的服装商城销售管理平台