659 分割陣列為連續子串行

2021-10-11 08:42:18 字數 804 閱讀 5819

給你乙個按公升序排序的整數陣列 num(可能包含重複數字),請你將它們分割成乙個或多個子串行,其中每個子串行都由連續整數組成且長度至少為 3 。

如果可以完成上述分割,則返回 true ;否則,返回 false 。

示例 1:

輸入: [1,2,3,3,4,5]

輸出: true

解釋:你可以分割出這樣兩個連續子串行 : 

1, 2, 3

3, 4, 5

示例 2:

輸入: [1,2,3,3,4,4,5,5]

輸出: true

解釋:你可以分割出這樣兩個連續子串行 : 

1, 2, 3, 4, 5

3, 4, 5

示例 3:

輸入: [1,2,3,4,4,5]

輸出: false

輸入的陣列長度範圍為 [1, 10000]

class solution 

//開始訪問各個元素

for (auto num : nums)

numscntmap[num] -= 1;//剩餘個數自減

if (numsendcntmap.count(num - 1) && numsendcntmap[num - 1] > 0)

else if (numscntmap.count(num + 1) && numscntmap[num + 1] && numscntmap.count(num + 2) && numscntmap[num + 2])

else

}return true;

}};

659 分割陣列為連續子串行

貪心 按數字大小的順序,盡量將當前數字與之前產生的數鏈連線在一起。考慮1 2 3 4 4 5 5 6這樣一組數字,遍歷到第二個4的時候,就應該檢測能不能再組成一條新的數鏈,這時就把6給從count中減掉了,盡可能避免剩下短鏈。class solution else if tails.get x 0 ...

659 分割陣列為連續子串行

給你乙個按公升序排序的整數陣列 num 可能包含重複數字 請你將它們分割成乙個或多個子串行,其中每個子串行都由連續整數組成且長度至少為 3 如果可以完成上述分割,則返回 true 否則,返回 false 貪心演算法 思路分析 分析i時,先查詢有沒有以i 1結尾的子串行,有則接著,沒有則需要新建長度最...

659 分割陣列為連續子串行 貪心演算法 中等

給你乙個按公升序排序的整數陣列 num 可能包含重複數字 請你將它們分割成乙個或多個長度至少為 3 的子串行,其中每個子串行都由連續整數組成。如果可以完成上述分割,則返回 true 否則,返回 false 示例 1 輸入 1,2,3,3,4,5 輸出 true 解釋 你可以分割出這樣兩個連續子串行 ...