扑克牌顺子
class Solution {
public:
bool IsContinuous( vector<int> numbers ) {
int num=0;
int i=0;
int begin;
if(numbers.size()<5)
return false;
sort(numbers.begin(),numbers.end());
//判断0的个数
for(;i<5;i++)
{
if(numbers[i]==0)
num++;
else
break;
}
begin=numbers[i];
for(int j=1;i+j<5;)
{
if(numbers[i+j]==(begin+1))//这个加加运算符会突破括号的限制,再进行这个运算时,begin会自+1
{
j++;
begin++;
}
else
{
num--;
if(num==-1)
return false;
begin++;
}
}
return true;
}
};总结:
1.调试了很多次哈,第一点,++的时候,会突破括号的限制,且,如果判断用++,自己记得这个会改变变量的值得,会影响到与if同级的判断,自己注意一下。
大神解法:
1 max - min <5
2 除0外没有重复的数字(牌)
3 数组长度 为5。
满足以上三个条件即为正解。也还行,


