这是从leetcode中删除Sorted Array中的重复项 正确的答案是
class Solution {
public:
/**
* @param A: a list of integers
* @return : return an integer
*/
int removeDuplicates(vector<int> &nums) {
// write your code here
int i=1;
while(i<nums.size()){
if(nums[i] != nums[i-1])
++i;
else
nums.erase(nums.begin()+i);
}
return nums.size();
}
};
我改变了这些代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int i = 1;
while( i < nums.size()) {
if( nums[i] != nums[i+1])
i++;
else
nums.erase(nums.begin() + i);
}
return nums.size();
}
};
我不知道为什么这是错的,输入:[1,1]输出:[1,1]预期:[1]
并且像这样:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
for(int i = 1; i < nums.size(); i++) {
if( nums[i-1] = nums[i])
nums.erase(nums.begin() + i);
}
return nums.size();
}
};
输入: [1,2] 输出: [2] 预期: [1,2]
答案 0 :(得分:0)
访问向量是从零开始的(就像内置的低级数组一样),因此将i的初始值设置为零(而不是1)。在专业代码中,我希望通过对矢量使用标准排序和独特算法来完成。