Leetcode659——Split Array into Consecutive Subsequences
2017-09-04 21:26
399 查看
写的很奇怪,一下子就写完了,但是感觉解法及其不规范QAQ
逻辑连自己都说不清楚- -,大概就是以前打扑克凑顺子的思路吧,这都可以ac了也是有点纳闷
class Solution {
public:
int Hash[10000] = {0};
bool isPossible(vector<int>& nums) {
int max = 0;
sort(nums.begin(), nums.end());
int n = (int)nums.size();
for(auto it = nums.begin(); it != nums.end(); it++){
Hash[*it] ++;
if(*it > max) max = *it;
}
bool flag = true; int start = nums[0];
while(n){
while(start <= max && Hash[start] == 0) start++;
int st = start; int num = 0;
while(Hash[st] >= Hash[st - 1]){
Hash[st-1] --;
if(Hash[st - 1] == 0) start = st;
n--;
st++;
num++;
}
Hash[st - 1] --;
if(num < 3 || Hash[st - 1] < 0){
flag = false; break;
}
}
return flag;
}
};
逻辑连自己都说不清楚- -,大概就是以前打扑克凑顺子的思路吧,这都可以ac了也是有点纳闷
class Solution {
public:
int Hash[10000] = {0};
bool isPossible(vector<int>& nums) {
int max = 0;
sort(nums.begin(), nums.end());
int n = (int)nums.size();
for(auto it = nums.begin(); it != nums.end(); it++){
Hash[*it] ++;
if(*it > max) max = *it;
}
bool flag = true; int start = nums[0];
while(n){
while(start <= max && Hash[start] == 0) start++;
int st = start; int num = 0;
while(Hash[st] >= Hash[st - 1]){
Hash[st-1] --;
if(Hash[st - 1] == 0) start = st;
n--;
st++;
num++;
}
Hash[st - 1] --;
if(num < 3 || Hash[st - 1] < 0){
flag = false; break;
}
}
return flag;
}
};
相关文章推荐
- leetcode 659. Split Array into Consecutive Subsequences
- leetcode659 Split Array into Consecutive Subsequences
- LeetCode[659]Split Array into Consecutive Subsequences(Java)
- leetcode 659. Split Array into Consecutive Subsequences 分割连续序列 + 贪心算法
- [Leetcode] 659. Split Array into Consecutive Subsequences 解题报告
- LeetCode 659: Split Array into Consecutive Subsequence
- LeetCode Split Array into Consecutive Subsequences
- [LeetCode] Split Array into Consecutive Subsequences 将数组分割成连续子序列
- 659. Split Array into Consecutive Subsequences
- 659. Split Array into Consecutive Subsequences(贪心)
- 659. Split Array into Consecutive Subsequences
- 659. Split Array into Consecutive Subsequences
- 659-Split Array into Consecutive Subsequences
- Split Array into Consecutive Subsequences 解法
- Split Array into Consecutive Subsequences
- Leetcode 649, Split Array to Consecutive Subsequences
- Split Array into Consecutive Subsequences问题及解法
- [LeetCode] 贪心算法之 Split Array into Consecutive Subsequence
- leetcode 659. Split Array into Consecutive Subsequences
- Split Array into Consecutive Subsequences