LeetCode - 80. Remove Duplicates from Sorted Array II
題目意思:
一樣是一個排序好的數字陣列,每個數字只允許重複出現兩次,最後回傳新陣列大小(不可宣告新陣列,只能從舊有的去改)
解決方式:
利用迴圈的方式,一樣要判斷當鎮列為空的情況,然後從頭開始,跟下一個數字比較(因為排序過後可以直接這樣做),如果相等,宣告一個計數器++,當這個計數器 <2,允許此數字加入到新陣列去,如果是新數字進來,計數器歸零。
int removeDuplicates(int* nums, int numsSize) { if(numsSize == 0) { return 0; } else { int i = 0 , check = 0; for(int j=1; j<numsSize ; j++) { if(nums[i]==nums[j]) { ++check; if(check<2) { nums[++i] = nums[j]; } } else { nums[++i] = nums[j]; check = 0; } } return i+1; } }
留言
張貼留言