1. 程式人生 > >leetcode26——刪除陣列中重複的項

leetcode26——刪除陣列中重複的項

給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。

給定陣列 nums = [1,1,2],

函式應該返回新的長度 2, 並且原陣列 nums 的前兩個元素被修改為 1, 2。

你不需要考慮陣列中超出新長度後面的元素。

class Solution {
    public int removeDuplicates(int[] nums) {
    //思想:陣列問題一般用雙指標
        if(nums.length==0)
            return 0;
        if(nums.length==1)
            return 1;
        int first=0;
        int last=1;
        int count=1;
        while(last<nums.length){
            if(nums[first]==nums[last]){
                last++;
            }else{
                count++;
                first++;
                nums[first]=nums[last];
                last++;
            }
        }
        return count;
    }
}