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;
            }
        }
    }
    
  • 相关阅读:
    一行代码搞定图片缩放、旋转、加水印
    如何学习 Webpack
    Webpack 概念
    Webpack 入门
    asp.net core教程 (一)
    asp.net core教程 (二)
    ap.net core 教程(三)
    Grafana 安装配置
    zabbix-3.0.x LTS源码安装配置
    MariaDB Security
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074674.html
Copyright © 2011-2022 走看看