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;
- }
- }
留言
張貼留言