26 Remove Duplicates from Sorted Array

參考連結:
https://blog.csdn.net/qq_40416052/article/details/82054747

此題不需要考慮長度後面的數字
e.g. [1,1,2]
將數組變成[2,1] , 返回length = 2

思路:
i指針記錄長度, j指針loop through list

用i慢指針記錄不等於的長度
用jj快指針loop through list,
如果nums[i] = nums[j], continue to loop直到不同,
然後當快慢指針值不相等時, 將快指針的值儲存到慢指針的值上
畫圖會更好理解這個算法
最後返回i++ 是因為數組中index 0 佔據了一個數值的原因

偽代碼:
loop through j
如nums[i] != nums[j];
i++
nums[i] = nums[j]

自己代碼:

class Solution {
    public int removeDuplicates(int[] nums) {
        if (nums.length == 0) return 0;
        
        int i =0;
        
        for (int j=0; j

你可能感兴趣的:(26 Remove Duplicates from Sorted Array)