您的位置:首页 > 产品设计 > UI/UE

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: