当前位置:网站首页>LeetCode·26.删除有序数组中的重复项·双指针
LeetCode·26.删除有序数组中的重复项·双指针
2022-08-10 18:29:00 【小迅想变强】
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/solution/by-xun-ge-v-pz0q/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处
题目
示例
思路
解题思路
双指针
删除数组中存在的相同元素,题目给定数组为指针,说明nums指向原始数组的地址,我们修改nums相当于修改了nums指向的地址,所以返回修改之后nums长度即可
对于本题我们定义两个指针,一个指向数组,遍历数组所有元素,当数组元素相同时,另外一个指针将当前位置之后的所有元素都向前移位,相当于删除操作
双指针优化
在上述解法中,我们需要遍历还需要搬运元素,时间复杂度为O(n^2),我们可以将遍历和搬运简化到一个循环中,定义双指针,当数组元素相同时,慢指针留着当前位置,快指针进行前进,直到不相等时,将快指针指向位置搬运到当前慢指针位置
代码
int removeDuplicates(int* nums, int numsSize){
int i, j;//定义快慢指针
for(i = 1, j = 0; i < numsSize; i++)//遍历整个数组
{
if(nums[i] == nums[j])//快指针进行走
{
continue;
}
nums[++j] = nums[i];//慢指针搬元素
}
return ++j;
}
作者:xun-ge-v
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/solution/by-xun-ge-v-pz0q/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。边栏推荐
- 【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(下)
- FlexSim仿真软件入门笔记:基本操作、快捷键
- 【2015】【论文笔记】等离子光混合器THz辐射的光谱——
- 【FAQ】【Push Kit】推送服务,回执配置一直报错、回执过期修改、怎么删除配置的回执
- 基于 RocksDB 实现高可靠、低时延的 MQTT 数据持久化
- 三星Galaxy Watch5产品图片流出 非Pro表款亦有蓝宝石加持
- 120Hz OLED拒绝“烧屏”!华硕无双全能轻薄本
- 兼具外观、性能、屏幕!华硕灵耀X 14火热抢购中
- websocket校验token:使用threadlocal存放和获取当前登录用户
- JVM内存和垃圾回收-11.执行引擎
猜你喜欢
随机推荐
CEO对今天的CIO们真正的要求是什么?
eager模式和graph模式 Tensorflow
高手问答第 290 期 —— SaaS产品经理从菜鸟到专家
pyspark列合并为一行
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(下)
20220810
JSON serialization and deserialization using Jackson API in Scala
MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先
905. 区间选点(贪心)
StoneDB 文档捉虫活动第一季
FPGA:从0开始(安装开发环境)加破解
6-12 二叉搜索树的操作集(30分)
FlexSim仿真软件入门笔记:基本操作、快捷键
补坑简单图论题
搭载2.8K 120Hz OLED华硕好屏 无畏Pro15 2022锐龙版屏开得胜
剑指 Offer II 042. 最近请求次数-队列法
智能安防产品公司及产品
【FAQ】HarmonyOS ETS如何给组件设置边框
FPGA工程师面试试题集锦91~100
#yyds干货盘点# 面试必刷TOP101:二分查找-I









