原题链接
思路:
- 最大值与最小值不能超过4;
- 不能出现除0之外的重复数字。
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;
}