Leetcode #26 关于自己的代码
来源:3-4 即使简单的问题,也有很多优化的思路
慕仰9094206
2019-03-10
class Solution{
public:
int removeDuplicates(vector<int> nums) {
if (nums.size() == 0) return 0;
int i = 0;
for (int j = 1; j < nums.size(); j++) {
if (nums[j] != nums[i]) {
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
};
我调试的话{1,1,2} 的数据,会输出{1,2}
但是Leetcode显示结果是{1,1}
这个方法是根据Solution提出来的
想问一下到底出了什么问题
写回答
3回答
-
可能我没有特别理解你的问题。你的算法本身是错误的。
对于[1, 1, 2]这个数据,正确答案是[1, 2],你的程序运行结果是[1, 1]。
在本机测试一下试试看?
这个测试用例只有三个数据,执行的代码指令数也就10几条。仔细调试跟踪一下,看看为什么对于[1, 1, 2]这个测试用例,你的程序得到的结果是[1, 1],而不是[1, 2]?
调试程序可是学习算法,锻炼编程思维能力的重要方式哦。
加油!:)
062019-03-12 -
慕粉3869017
2020-06-02
private int RemoveDuplicates(int[] nums) {
int i=0;
for (int j=0;j<nums.length;j++){
if (nums[j]!=nums[i]){
i++;
nums[i] = nums[j];
}
}
return i+1;
}这样才对。j要从0开始
00 -
MOCKINGT
2019-07-14
判断是否重复的条件错了
00
相似问题
自己对map的一点困惑
回答 1
LeetCode 62题回溯与动态规划
回答 1