牛客题霸 [扑克牌顺子] C++题解/答案
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                牛客题霸 [扑克牌顺子] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                管理博文 牛客題霸 [撲克牌順子] C++題解/答案
題目描述
LL今天心情特別好,因為他去買了一副撲克牌,發現里面居然有2個大王,2個小王(一副牌原本是54張_)…他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!“紅心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是順子…LL不高興了,他想了想,決定大\小 王可以看成任何數字,并且A看作1,J為11,Q為12,K為13。上面的5張牌就可以變成“1,2,3,4,5”(大小王分別看作2和4),“So Lucky!”。LL決定去買體育彩票啦。 現在,要求你使用這幅牌模擬上面的過程,然后告訴我們LL的運氣如何, 如果牌能組成順子就輸出true,否則就輸出false。為了方便起見,你可以認為大小王是0。
題解:
因為一共五張牌所以我們先排序
 因為有大小王可以當任意牌,大小王為0,所以先統計0的數量
 看最后非0的數中,最大值減最小值是否<5,這樣即便有缺數也可以用0來充當
 當然除了0,也不能有相同的數出現,不然就不能組成順子了(一開始把這個給忘了)
代碼:
class Solution { public:bool IsContinuous( vector<int> numbers ) {int size = numbers.size();if(size<5)return false;int findex = 0;sort(numbers.begin(), numbers.end());for(int i=0; i<size; i++) {if(numbers[i]==0) {findex++;continue;}if(i+1<size && numbers[i]==numbers[i+1])return false;}return numbers[4]-numbers[findex] < 5;} };總結
以上是生活随笔為你收集整理的牛客题霸 [扑克牌顺子] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 搜狗壁纸桌面PC版 v2.4 官方最新版
- 下一篇: 二手书市场的快速增长:多抓鱼产品分析报告
