题目
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字
解题思路
- 把数组排序
2)统计数组中0的个数 - 统计排序后数组中相邻数字之间的空缺总数。若空缺总数≤0的个数,那么这个数组是连续的,反之不是连续的
- 若数组中国非0数字重复出现,则该数组不是连续的。
代码
class Solution{
public:
bool isContinuous(int *number,int length)
{
for(int i = 0;i<length;i++)
{
for(int j = length-1;j>i;j--)
{
if(number[i]>number[j])
{
int temp = number[i];
number[i]=number[j];
number[j]=temp;
}
}
}
int zero_sum = 0;
int empty_sum = 0;
for(int i =0;i<length-1;i++)
{
if(number[i] == 0)
{
zero_sum++;
}
else if((number[i]+1) != number[i+1] )
{
empty_sum++;
}
}
// return zero<empty?0:1;
if(zero_sum >= empty_sum)
{
return 1;
}
else
{
return 0;
}
}
};
网友评论