题目描述:
大小王看作0,判断是否是顺子。
思路:
间隔数少于等于0的个数。
代码:
class Solution {
public:
bool IsContinuous( vector<int> numbers ) {
if (numbers.empty()) return false;
sort(numbers.begin(), numbers.end());
int cnt = 0;
int st = 0;
for (int i=0; i<numbers.size(); ++i) {
if (numbers[i] == 0) cnt++;
else if (st == 0)
st = numbers[i];
else {
if (numbers[i] == st) return false;
if (numbers[i] != st + 1)
cnt -= numbers[i] - st - 1;
st = numbers[i];
}
if (cnt < 0) return false;
}
return true;
}
};
发现自己刷题,全靠样例和编译器试。。bugfree,编译器自由,还能实现么。
记录这道题因为,剑指offer一刷完成。。QAQ。
开始刷leetcode,希望早日刷完。呵呵呵呵呵。