题目
从扑克牌中随机抽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; }
原文地址:https://www.cnblogs.com/shiganquan/p/9351713.html
时间: 2024-10-11 05:33:45