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

C语言每日一题(21)删除排序数组中的重复项

力扣 26.删除排序数组中的重复项

题目描述

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。

 

 思路分析

基于双指针法,用下标进行代替,从数组最左端开始,遍历整个数组,下标1如果不等于下标2就把下标1指向的值赋给下标2,同时继续向后遍历完整个数组,最后返回下标2的值(即去重后数组的长度)

整体步骤

1.定义src下标和dest下标,dest从0开始

src从1开始(第一个不需要进行匹配)遍历整个数组,如果nums【src】不等于nums【dest】的就将src指向的值赋给dest(先++在赋值),同时定义一个计数器++(从1开始),最后返回count的值。

完整代码

int removeDuplicates(int* nums, int numsSize){int src=0;int dest=0;int count=1;for(src=1;src<numsSize;src++){if(nums[src]!=nums[dest]){nums[++dest]=nums[src];count++;}}return count;}

http://www.lryc.cn/news/209839.html

相关文章:

  • 如何快速解决d3dcompiler_43.dll缺失问题?五种方法快速解决
  • mongodb数据迁移的方法
  • Spring MVC 中文文档
  • RedissonCach的源码流程
  • spring-基于注解管理bean
  • 数据挖掘(7.1)--数据仓库
  • Vue3问题:如何实现密码加密登录?前后端!
  • 【爬虫】python打包可执行程序(ui界面制作完成后)
  • 取Dataset子集(pytorch)
  • 如何选择消息队列
  • 读取mysql数据库表结构生成接口文档
  • 【MySQL索引与优化篇】InnoDB数据存储结构
  • Go学习第十二章——Go反射与TCP编程
  • uniapp编译微信小程序富文本rich-text的图片样式不生效原因
  • Django实战项目-学习任务系统-任务管理
  • ubuntu18.04设置开机自动启动脚本(以自动启动odoo命令行为例讲解)
  • golang工程——grpc-gateway 转发http header中自定义字段到grpc上下文元数据
  • CPU眼里的C/C++: 1.3 汇编级单步调试函数执行过程
  • 数据结构时间复杂度(补充)和空间复杂度
  • Mac-postman存储文件目录
  • JAVA面试题简单整理
  • dd命令用法学习,是一个功能强大的工具
  • Games104现代游戏引擎笔记 网络游戏进阶架构
  • Apollo 快速上手指南:打造自动驾驶解决方案
  • C现代方法(第14章)笔记——预处理器
  • Kafka KRaft模式探索
  • LVS-keepalived实现高可用
  • Linux内核驱动开发的需要掌握的知识点
  • nginx 动静分离 防盗链
  • MYSQL(索引篇)