经典指数          
原因
562
浏览数
0
收藏数
 

【编程题】 从一副扑克牌中随机抽出5张牌,判断是否可以组成顺子(即这3张牌是连续的),其中2-10为数字本身,A,J,Q,K在数组中分包由1、11、12、13表示,而大小王在数组中由0表示,并可以当成任意一张牌使用。 bool  IsContinue(int *number,int length){ }

     举报   纠错  
 
切换
1 个答案
如果按先排序,再判断相邻元素差值为1、2、3的做法,就算不考虑排序的时间复杂度,程序写起来也会很麻烦,需要判断多种情况。 如果换个思路,如果抽到的五张牌除了面值为0的牌可以重复,其余都不重复的话,有三种情况,第一种无0,最大值减去最小值等于4;第二种情况,有一个0,由于王牌可以替成两边和中间,替成两边的话,最大值减去最小值是3,替成中间为4,第三种情况同理,最大值减去最小值可以为4、3、2。 综上,要判断顺子,只需数字除0外不重复且最大值减去最小值的值小于等于4。
 
切换
撰写答案
扫描后移动端查看本题