Given a sorted array, remove the duplicates in-place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
Example:
Given nums = [1,1,2],
Your function should return length = 2, with the first two elements of
nums being 1 and 2 respectively. It doesn’t matter what you leave
beyond the new length.
删除掉有序数组内所有重复的元素,只保留一个。
思路是两个指针i,j,指针i遍历数组,每当nums[i]和nums[j]不同时,j就往前移动一格然后num[i]的值赋予给nums[j]
class Solution {
public int removeDuplicates(int[] nums) {
int j =0;
for(int i=0; i<nums.length;i++){
if(nums[i] != nums[j])
nums[++j]= nums[i];
}
return j+1;
}
}
本文介绍了一种使用双指针技术去除有序数组中重复元素的方法,该方法能够在原地修改数组并仅使用常数额外空间,符合O(1)内存限制的要求。
1106

被折叠的 条评论
为什么被折叠?



