Closed PisecesPeng closed 3 years ago
public static int func(int[] ints) {
// 判断数组是否有值
int count = ints.length > 0 ? 1 : 0;
for (int i = 1; i < ints.length; i++) {
// 当且仅当 有序数组的当前值大于前一个值时
if (ints[i] > ints[i - 1]) {
// 将 count下标 赋予当前新的(不重复)值
ints[count] = ints[i];
// count自增, 1是为记录当前不重复的值个数, 2是为记录下一次新值的index
count++;
}
}
return count;
}
public static int func(int[] ints) {
int n = nums.length;
if (n == 0) {
return 0;
}
int fast = 1, slow = 1;
while (fast < n) {
if (nums[fast] != nums[fast - 1]) {
nums[slow] = nums[fast];
++slow;
}
++fast;
}
return slow;
}
删除排序数组中的重复项
给定一个排序数组, 你需要在'原地'删除重复出现的元素,
使得每个元素只出现一次, 返回移除后数组的新长度.
不要使用额外的数组空间, 你必须在'原地'修改输入数组,
并在使用O(1)额外空间的条件下完成.
说明:
为什么返回数组值是整数, 但输出的答案是数组呢?
请注意, 输入数组是以'引用'方式传递的,
这意味着在函数里修改输入数组对于调用者是可见的.
你可以想象内部操作如下:
题目地址: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/