题目描述:给定一个排序了的数组,找出其中不重复的数组并返回
unique
的个数,然后原地修改数组让数组最前面为各个唯一数。
题目链接:Leetcode 26. Remove Duplicates from Sorted Array
Given nums = [0,0,1,1,1,2,2,3,3,4],
Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively.
It doesn't matter what values are set beyond the returned length.
思路就是待定,每当遇到一个数与后一个数不一样就传入前面的cnt,并cnt向右。
代码如下
class Solution {
public int removeDuplicates(int[] nums) {
int cnt = 0, length = nums.length;
for (int i = 0; i < length; ++i)
if (i + 1 < length && nums[i] == nums[i + 1]) continue;
else nums[cnt++] = nums[i]; // 将不重复的元素放置到对应的位置
return cnt;
}
}