Original title link
ideas:
- The maximum and minimum cannot exceed 4;
- No repeated numbers other than 0 can appear.
bool isStraight(int* nums, int numsSize){
int arr[14] = {
0}; // 来个桶统计元素数量
int maxNum = -1, minNum = 14;
for(int i =0; i < numsSize; i++){
if(nums[i] != 0){
//元素不为 0 时候统计
arr[nums[i]]++;
if(arr[nums[i]] == 2) return false; //排除对子存在的情况
if(nums[i] > maxNum) maxNum = nums[i];
if(nums[i] < minNum) minNum = nums[i];
}
}
if(maxNum == -1 || minNum ==14) return true;
if(maxNum - minNum > 4) return false;
return true;
}