LeetCode26. 删除排序数组中的重复项
作者:互联网
题目:
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
思路:
用一个计数器count记录独特数字即可。
题解:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()==0){
return 0;
}
if(nums.size()==1){
return 1;
}
int i,count = 0;//count记录独特数字
for(i = 0;i<nums.size()-1; i++){
while(nums[i]==nums[i+1])
{
i += 1;
if(i+1 > nums.size()-1){ //如果越界
break;
}
}
count += 1;
nums[count-1] = nums[i];
}
//处理边界情况
if(nums[nums.size()-1]==nums[nums.size()-2]){
return count;
}else{
count += 1;
nums[count -1] = nums[nums.size()-1];
return count;
}
}
};
标签:count,排序,return,nums,int,数组,LeetCode26,size 来源: https://blog.csdn.net/Findingxu/article/details/100862328