近日发现一个国外学习算法的网站,支持在线编程还能发帖讨论,有空闲时可以玩一玩。
网站每天会收录不少题目,活跃度不错。courses里面有一些题目练手,比如:
给定一个排好顺序的数组,然后去除里面重复的元素,并且返回最终数组的长度。
不能创建新的数组,只能在原有的数组上操作。
例如,
传入一个数组 nums = [1,1,2],
最后返回2,并且数组 nums = [1,2]。
解决方案:
public int removeDuplicates(int[] nums) {
if (nums.length == 0) return 0;
int i = 0;
for (int j = 1; j < nums.length; j++) {
if (nums[j] != nums[i]) {
i++;
nums[i] = nums[j];
}
}
return i + 1;
}