LeetCode's sword refers to Offer 61. Straight in poker

Original title link
ideas:

  1. The maximum and minimum cannot exceed 4;
  2. 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;
}

Guess you like

Origin blog.csdn.net/qq_43078427/article/details/111119314