Leetcode 649, Split Array to Consecutive Subsequences
2017-10-29 18:24
465 查看
leetcode 649
返回是否能把一个升序的数组分成若干个最小长度为3的连续数字串。听起来有点像蜘蛛纸牌一样的东西。解决办法就是把数组从头到尾扫一遍,每读入一个数字i,如果有以i-1结束的串就把这个数字加到这些串里最短的串的的后面,然后将以i-1结尾的串更改为以i结尾的串,没有就放到一个空串里面,最后检查这些串里面有没有长度小于3的。不需要具体的记录每一个串,只需要记录每一个以i结尾的串的长度就可以了。
以下是代码:
class Solution { public: bool isPossible(vector<int>& nums) { unordered_map<int, priority_queue<int, vector<int>, greater<int>>> backs; int flag = 0; for (auto i : nums) { if(!backs[i - 1].empty()) { int count = backs[i - 1].top(); backs[i - 1].pop(); backs[i].push(++count); if(count == 3) flag--; } else { backs[i].push(1); flag++; } } return flag == 0; } };
相关文章推荐
- [Leetcode] 659. Split Array into Consecutive Subsequences 解题报告
- leetcode 659. Split Array into Consecutive Subsequences
- [LeetCode] Split Array into Consecutive Subsequences 将数组分割成连续子序列
- Leetcode659——Split Array into Consecutive Subsequences
- LeetCode[659]Split Array into Consecutive Subsequences(Java)
- LeetCode Split Array into Consecutive Subsequences
- leetcode659 Split Array into Consecutive Subsequences
- leetcode 659. Split Array into Consecutive Subsequences 分割连续序列 + 贪心算法
- leetcode 659. Split Array into Consecutive Subsequences
- Split Array into Consecutive Subsequences
- leetcode 659. Split Array into Consecutive Subsequences
- [LeetCode] 贪心算法之 Split Array into Consecutive Subsequence
- LeetCode #659 Split Array into Consecutive Subsequences
- 659-Split Array into Consecutive Subsequences
- 659. Split Array into Consecutive Subsequences
- Split Array into Consecutive Subsequences
- 659. Split Array into Consecutive Subsequences
- Split Array into Consecutive Subsequences 解法
- Split Array into Consecutive Subsequences问题及解法
- 659. Split Array into Consecutive Subsequences(贪心)