• 1608. Special Array With X Elements Greater Than or Equal X


    You are given an array nums of non-negative integers. nums is considered special if there exists a number x such that there are exactly x numbers in nums that are greater than or equal to x.

    Notice that x does not have to be an element in nums.

    Return x if the array is special, otherwise, return -1. It can be proven that if nums is special, the value for x is unique.

    Example 1:

    Input: nums = [3,5]
    Output: 2
    Explanation: There are 2 values (3 and 5) that are greater than or equal to 2.
    

    Example 2:

    Input: nums = [0,0]
    Output: -1
    Explanation: No numbers fit the criteria for x.
    If x = 0, there should be 0 numbers >= x, but there are 2.
    If x = 1, there should be 1 number >= x, but there are 0.
    If x = 2, there should be 2 numbers >= x, but there are 0.
    x cannot be greater since there are only 2 numbers in nums.
    

    Example 3:

    Input: nums = [0,4,3,0,4]
    Output: 3
    Explanation: There are 3 values that are greater than or equal to 3.
    

    Example 4:

    Input: nums = [3,6,7,7,0]
    Output: -1
    

    Constraints:

    • 1 <= nums.length <= 100
    • 0 <= nums[i] <= 1000
    class Solution {
        public int specialArray(int[] nums) {
            int n = nums.length;
            int[] arr = new int[1001];
            for(int i : nums) arr[i]++;
            
            for(int i = 0; i <= 100; i++) {
                if(n == i) return i;
                n -= arr[i];
            }
            return -1;
        }
    }

    牛逼了我的哥,先用constraint把各个数的频率count一下,然后因为一共不超过100个数,所以实际上nums【i】大于100的时候已经没用了,题目要求的是恰好有x个数大于等于x。

    然后从0到100循环,如果剩余数n == i,说明n和i就是x,返回。否则由于这个数不是答案,所以n减去这个数的频率,比如【0,0,3,4,3】,到0的时候不符合,n-2=3,然后到了3直接3 == 3 返回。

  • 相关阅读:
    SQLyog远程连接Linux服务器错误2003解决
    Linux/UNIX系统编程手册 练习3.8
    概括
    Linux 命令
    句柄类
    带有C风格的 CLib库
    Linux 命令
    C++ 编程思想 第三章 3-2
    一.创建型模式 Prototype 模式
    一.创建型模式 Builder
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/13776204.html
Copyright © 2020-2023  润新知