【劍指offer】61、撲克牌中的順子
阿新 • • 發佈:2018-07-23
一個 nbsp sort int con turn 判斷 個數 是否
題目
從撲克牌中隨機抽5張牌,判斷是不是一個順子。2~10為本身,A是1,J,Q,K分別是11,12,13。大小王百搭
思路
關鍵就是大小王百搭。把大小王都當作0。
我們先統計出數組中0的個數
然後將數組排序,統計不連續的空缺總數
最後判斷0的個數是否比空缺總數大
class Solution { public: bool IsContinuous( vector<int> numbers ) { if (numbers.size() != 5 ) return false; int length = numbers.size(); sort(numbers.begin(), numbers.end());int num_space = 0, num_zero = 0; for (int i = 0; i < length; i++) { if (numbers[i] == 0) num_zero++; } for (int i = num_zero; i < length - 1; i++) { if (numbers[i+1] == numbers[i]) return false;// 統計空缺總數,如果是連續的,則為0 num_space += numbers[i+1] - numbers[i] - 1; } return (num_space > num_zero)?false:true; }
【劍指offer】61、撲克牌中的順子