从leetcode的排序数组中删除重复项,为什么它是错误的答案?
Remove Duplicates from Sorted Array from leetcode, why it wrong answer?
这是从leetcode中删除排序数组中的重复项正确答案是
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]
访问向量是从零开始的(就像内置的低级数组一样),所以将i的初始值设置为零(而不是1)。在专业代码中,我希望通过对向量使用标准排序和唯一算法来完成这一点。
相关文章:
- 我的字符计数代码计算错误.为什么
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- xmake总是报告:错误:无法获取cxx的程序,为什么
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 为什么加载SDF会导致Mobilizer创建闭环错误
- 为什么我在leetcode上收到AddressSanitizer:地址0x602000000058上的堆缓冲区溢出错误
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 为什么我在使用void函数时得到错误代码C2276
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 为什么g++在未执行的代码处标记强制转换错误
- 有人知道为什么在开关中使用stoi函数会返回恒定的错误吗
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- 为什么错误"permission denied","id returned 1 exit status"仅在 IM 使用 C++ 中的头文件 fstream 时才出现
- 为什么错误:"locate_zone"不是"std::chrono"的成员
- 为什么错误 C6386 缓冲区溢出与 strsafe.h 字符串 Cch 函数
- 为什么错误1400无效的窗口句柄
- 为什么错误LNK2001:在这种情况下未解析的外部符号
- c++为什么错误:no match for 'operator='
- 为什么错误"invalid conversion from 'char' to 'const char*"?