题解 | #扑克牌顺子#
扑克牌顺子
https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4
/** * * @param numbers int整型一维数组 * @param numbersLen int numbers数组长度 * @return bool布尔型 */ //最大值最小值差值小于5,且其中不包含重复数字即可表示顺子 #include <stdbool.h> bool IsContinuous(int* numbers, int numbersLen ) { // write code here int hash[14] = {0}; int max = 0, min = 14; //设置max min的初始值,max最不可能为0,min最不可能为14(超过最大表示范围,必定会更新) for(int i=0; i<numbersLen; i++){ if(numbers[i] == 0) //如果为任意则跳过 continue; else if(hash[numbers[i]] == 0){ //如果该牌没出现过 hash[numbers[i]]++; //标志出现 max = max < numbers[i] ? numbers[i] : max; //更新牌的最值 min = min < numbers[i] ? min : numbers[i]; }else{ //有牌重复出现 return false; } } if(max - min < 5) //如果最大最小差值超过5,则不可能为顺子 return true; else return false; }
