我正在研究leetcode的一个算法问题。但首先我在自己的本地编译器上写下了答案。在本地运行代码时,我可以得到这个问题的答案。但当我把答案直接粘贴到leetcode上的在线编译器中时,系统会提示我答案是错的。与正确答案不符。我的本地编译器的解决方案如下所示:
class Solution {
public int removeDuplicates(int[] nums) {
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> arraylist = new ArrayList<Integer>();
for (int i : nums) {
list.add(i);
}
for (int num : list) {
if (!arraylist.contains(num)) {
arraylist.add(num);
}
}
return arraylist.size();
}
}
leetcode的反馈:在这里输入图像描述
3条答案
按热度按时间zbdgwd5y1#
有些评论说可以使用一个集合,但任务是这样做而不需要任何额外的内存分配,最简单的解决方案是:
bq8i3lrv2#
不要使用
List
,Set
,Map
,或者类似的。数据已排序。用那个!实际上,问问你自己,你的产出是怎样的
[1, 1]
,当您只能返回一个int
价值观。如何输出只有一个数字的列表/数组?再看一遍挑战描述,第一句话:
... 在适当的地方移除副本。。。返回新长度。
既然这是你的挑战,我就不写代码了。
mzsu5hc03#
将index设置为1,如果nums[i]与nums[i+1]不同,则按1递增index