iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
自我挑戰組

來解數學跟刷圖論跟幾何程式題或者我突然想研究的主題系列 第 6

Leetcode: 80. Remove Duplicates from Sorted Array II

  • 分享至 

  • xImage
  •  

延續I

變成每種element最多出現2次。

 

思路

第一直覺是,多加一個判斷幾次的變數
 
 
 

程式碼

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int index = 0, onetime = true;
        for(int i = 1; i < nums.size(); i++) {
            if ((nums[index] == nums[i]) && onetime) {
                index++;
                nums[index] = nums[i];
                onetime = false;
            }
            else if(nums[index] != nums[i]) {
                index++;
                nums[index] = nums[i];
                onetime = true;
            }
            
        }
        return index + 1;
    }
};

後來

但是其實有更簡潔的做法,像是遇到size為2以下的可以直接return size,而且我的程式擴展性不好,如果變成允許3個,我就又要重寫了。

參考:
https://ithelp.ithome.com.tw/articles/10267168


上一篇
Leetcode: 210. Course Schedule II | 含C++筆記
下一篇
Leetcode: 630. Course Schedule III | 含C++筆記
系列文
來解數學跟刷圖論跟幾何程式題或者我突然想研究的主題33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言