当前位置:网站首页>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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。边栏推荐
猜你喜欢
Three schemes of SQL query across the table

阿里云贾朝辉:云 XR 平台支持彼真科技呈现国风科幻虚拟演唱会

常量

开发模式对测试的影响

Redis command---key chapter (super complete)

【2011】【论文笔记】用THz-TDS观察水树——

H3C_堆叠(IRF)及链路聚合在项目中的综合应用

工业基础类—利用xBIM提取IFC几何数据

【深度学习21天学习挑战赛】4、初尝循环神经网络(RNN)——股票预测
![[Image dehazing] Image dehazing based on color attenuation prior with matlab code](/img/ae/d6d36671804fadae548464496f28d6.png)
[Image dehazing] Image dehazing based on color attenuation prior with matlab code
随机推荐
【深度学习21天学习挑战赛】4、初尝循环神经网络(RNN)——股票预测
FPGA工程师面试试题集锦81~90
MySQL 原理与优化:Update 优化
人生苦短,开始用go
EasyGBS连接mysql数据库提示“can’t connect to mysql server”,如何解决?
三星Galaxy Watch5产品图片流出 非Pro表款亦有蓝宝石加持
「POJ 3666」Making the Grade 题解(两种做法)
如何通过JMobile软件实现虹科物联网HMI/网关的报警功能?
开源一夏 | mysql5.7 安装部署 -二进制安装
智能安防产品公司及产品
FPGA:生成固化文件(将代码固化到板子上面)
Active users of mobile banking grew rapidly in June, hitting a half-year high
FPGA:从0开始(安装开发环境)加破解
VoLTE基础自学系列 | 3GPP规范解读之Rx接口(上集)
破解校园数字安全难点,联想推出智慧教育安全体系
eager模式和graph模式 Tensorflow
剖析Framework面试—>>>冲击Android高级职位
1720. 解码异或后的数组
智能出价策略如何影响广告效果?
剑指 Offer II 034. 外星语言是否排序-辅助数组法