题目:给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持 一致。然后返回 nums 中唯一元素的个数。
考虑 nums 的唯一元素的数量为k,你需要做以下事情确保你的题解可以被通过:
- 更改数组 nums,使 nums 的前k个元包含唯一元,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元与 nums 的大小不重要。
- 返回 k。
解法:用 i 从 0 扫到 nums.length-2,比较nums[i]与nums[i+1]的大小,若不相等,则nums[i+1]赋值给nums[j],指针j所指的即为新数组的长度。
答案:
class Solution {
public int removeDuplicates(int[] nums) {
int j=1;
for(int i=0;i<nums.length-1;i++)
{
if(nums[i]!=nums[i+1])
{
nums[j]=nums[i+1];
j++;
}
}
return j;
}
}