首页 > 其他 > 详细

扑克牌顺子

时间:2019-07-20 10:39:41      阅读:73      评论:0      收藏:0      [点我收藏+]

技术分享图片

思路:

首先确定一共有5张牌,最多可以有四个王,王用0表示。

先排序,找出0的个数;

从第一个非0的数字开始遍历,两数之间的差值用0来代替,当0用完之后还有其他的数字之间差值大于1的,那就返回false。

碰到相同的数字返回false;

 1 class Solution {
 2 public:
 3     bool IsContinuous( vector<int> numbers ) {
 4         if(numbers.size()==0) return false;
 5         sort(numbers.begin(),numbers.end());
 6         int count=0;
 7         for(int i=0;i<4;i++){
 8             if(numbers[i]==0) count++;
 9             else break;
10         }
11         int pre=numbers[count];
12         for(int j=count+1;j<numbers.size();j++){
13             int cha = numbers[j]-pre;
14             if(cha==0) return false;
15             else if(cha>1) count-=cha-1;
16             if(count<0) return false;
17             pre=numbers[j];
18         }
19         return true;
20     }
21 };

 

扑克牌顺子

原文:https://www.cnblogs.com/pacino12134/p/11216752.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!