博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
100. 删除排序数组中的重复数字
阅读量:6597 次
发布时间:2019-06-24

本文共 1079 字,大约阅读时间需要 3 分钟。

给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。

不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。

样例

给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]

 

这种简单难度的题要训练到第一时间想到解法,先上一个丑的不行的解法

1 int removeDuplicates(vector
&nums) { 2 // write your code here 3 if(nums.empty()){ 4 return 0; 5 } 6 vector
::iterator it=nums.begin(); 7 vector
::iterator temp; 8 it++; 9 int mark=nums[0];10 while(it!=nums.end()){11 if(*it==mark){12 temp=it;13 it=nums.erase(temp);14 }15 else{16 mark=*it;17 it++;18 }19 }20 return nums.size();21 }

两个指针一前一后,如果后和前一样,删除后,并将后向后移一位。

至少上面这种要第一个想到,下面贴一个美观的

1 int removeDuplicates(vector
&nums) { 2 if(nums.empty()) return 0; 3 int count=0; 4 for(int i=1;i

count+1内的数组是结果,将>=count的数覆盖进count,然后删除多余的。

转载于:https://www.cnblogs.com/TheLaughingMan/p/8203729.html

你可能感兴趣的文章
Dell 12G服务器 手动安装RedHat 6.X
查看>>
教你精简迅雷9内置浏览器,还你一个清爽的迅雷!!!
查看>>
UIVisualEffectView为视图添加特殊效果
查看>>
内置函数
查看>>
tcolorbox 宏包简明教程
查看>>
用字符流进行纯文本的读取和写出
查看>>
POJ2388 HDU1157 Who's in the Middle【中位数+排序】
查看>>
Go语言实现并行分段求和计算
查看>>
vue组件通信新姿势
查看>>
Bootstrap学习
查看>>
FileOutputStreamTest
查看>>
ubuntu apt-get安装、卸载软件命令及如何查看日志
查看>>
c#处理json问题
查看>>
KMP串匹配算法解析与优化
查看>>
Python修改文件方法——字符串替换
查看>>
【03】Kubernets:K8S 操作入门
查看>>
实用的 JavaScript 调试小技巧
查看>>
vue与angular 区别
查看>>
UNIX 家族及Linux
查看>>
Java-io
查看>>