[LeetCode] #26 Remove Duplicates from Sorted Array 解題

題目連結

題型解說

這是一題難度為簡單的題目

需要設計一個方法,此方法會傳入一個已經排好序的 int 陣列 nums

將這個陣列移除重複元素後把長度回傳

範例:

nums = [1,1,2],則回傳 2,因為元素 1 重複了

題中還要求不能另外建立陣列,必須使用原陣列進行操作

解題思路

這一題既然要求只能使用原陣列,那就只能把不重複的數字往前排

而且陣列已經幫我們排好序,那就準備一個 index 變數用來紀錄最後一個不重複元素的索引

之後跑一次迴圈,如果遇到與 index 索引指向的元素不相同的話,把 index + 1 後把元素覆蓋過去

跑完後就能傳回不重複數量

程式碼

Java

class Solution {
    public int removeDuplicates(int[] nums) {
        int index = 0;
        
        for (int i = 1, len = nums.length; i < len; i++) {
            if (nums[i] != nums[index]) {
                index++;
                nums[index] = nums[i];
            }
        }
            
        return index +1;
    }
}