/*
从中抽出了5张牌,看看能不能抽到顺子,大小王可以当做任何数
顺子需要满足什么条件?
剑指offer:顺子需要满足排序后空缺数少于等于王的数目
*/
import java.util.Arrays;
class IsContinuous
{
public static boolean isContinuous(int [] numbers) {
if (numbers==null||numbers.length<=0)
{
return false;
}
//排序
Arrays.sort(numbers);
//统计空缺数
int gapCount=0;
for (int i=0; i<numbers.length-1; i++)
{
int j=i+1;
if (numbers[i]!=0&&numbers[j]==numbers[i])
{
return false;
}
if (numbers[i]!=0&&numbers[j]-numbers[i]>1)
{
gapCount+=numbers[j]-numbers[i]-1;
}
}
//统计王的数目,用0表示王
int ZeroCount=0;
for (int i=0; i<numbers.length-1; i++)
{
if (numbers[i]==0)
{
ZeroCount++;
}
}
if (ZeroCount>=gapCount)
{
return true;
}
return false;
}
public static void main(String[] args)
{
int [] array={1,3,0,7,0};
System.out.println(isContinuous(array));
}
}
剑指offer_扑克牌顺子
最新推荐文章于 2020-04-03 22:04:36 发布