zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 747 至少是其他数字两倍的最大数(暴力)

    747. 至少是其他数字两倍的最大数

    在一个给定的数组nums中,总是存在一个最大元素 。

    查找数组中的最大元素是否至少是数组中每个其他数字的两倍。

    如果是,则返回最大元素的索引,否则返回-1。

    示例 1:

    输入: nums = [3, 6, 1, 0]
    输出: 1
    解释: 6是最大的整数, 对于数组中的其他整数,
    6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.

    示例 2:

    输入: nums = [1, 2, 3, 4]
    输出: -1
    解释: 4没有超过3的两倍大, 所以我们返回 -1.

    提示:

    nums 的长度范围在[1, 50].
    每个 nums[i] 的整数范围在 [0, 100].

    PS:
    找出最大的两个数,然后看看第一大的是不是第二大的的二倍多,不是就返回-1,是的话,就返回索引

    class Solution {
         public int dominantIndex(int[] nums) {
            if (nums.length < 1) return -1;
            if (nums.length == 1) return 0;
            int max = 0;
            int sm = 0;
            
            int idx = 0;
            for (int i=0; i<nums.length; i++) {
                int n = nums[i];
                if (n >= max && n >= sm) {
                    sm = max;
                    max = n;
                    idx = i;
                } else if (n < max && n > sm) {
                    sm = n;
                }
            }
            if (max >= sm * 2) {
                return idx;
            } else {
                return -1;
            }
        }
    }
    
  • 相关阅读:
    Spark Streaming反压机制
    spark submit参数及调优
    kafka中的配额管理(限速)机制
    Kafka限流
    BlockingQueue
    Android 更改userdata的大小
    visual studio 2019 error MSB3073 exited with code 1
    ARM 链接脚本分析
    Android Bluetooth hci 命令分析
    Android 查看蓝牙hci日志
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074674.html
Copyright © 2011-2022 走看看