26 Remove Duplicates from Sorted Array
這題的概念是要算出nums裡的所有不重複的數字有幾個(下面程式碼裡的count),並把array的前count個數字變成不重複的這count個數字。
舉例來說,如果有個例子是[1,1,1,2],我們的目標是要把回傳2,並把前兩個數字變成[1,2],所以做法就是利用count來計算總共有幾個不重複的數字,然後用ptr指向目前count應該要對應到的index。例如count一開始是1,ptr一開始指向index 1,直到走到2的時候,才會再把count加成2,並把nums[ptr]的1變2,程式就做完了。
public class Solution {
public int removeDuplicates(int[] nums) {
int count = 1;
int ptr = 1;
for(int i=1; i<nums.length; i++){
if(nums[i]!=nums[i-1]){
count++;
nums[ptr] = nums[i];
ptr++;
}
}
return count;
}
}