题目链接 删除数组中的重复项
题目描述
删除数组中重复的项,把剩下的数字按顺序输出来,并且返回数组的长度。
解题思路
因为这道题给的数据是按照顺序的,简单一点的就是用双指针来做。指针i和指针j分别移动,i在原数组中,j在新的一个数组中,如果a[i]!=num[j],那么num[j+1]=a[i];j++;这里为了减少空间,干脆把新挑选出来的数据放到原数组中,因为i一定大于等于j,而且还可以直接传址返回,更加方便。
程序代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()==0) return 0;
int j=0;
for(int i=0;i<nums.size();++i)
if(nums[j]!=nums[i]) {j++;nums[j]=nums[i];}
return j+1;
/*我自己在程序中运行的时候不用写j+1,
可能是返回后主程序的操作需要吧。*/
}
};
如果不懂LeetCode上的代码提交形式,可以访问我的这篇博客 两数之和