LeetCode:至少是其他数字两倍的最大数【747】

LeetCode:至少是其他数字两倍的最大数【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. 

提示:

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

题目分析

  解法一:直接找到最大元素,然后遍历每个元素,看是不是它是每个元素的2倍。这是最简单的方法,保底用的,但是效率很低。

  解法二找到最大和第二大的元素,看最大的是不是第二大的2倍,若不是直接返回-1.若是,在数组中找到它的索引

Java题解

class Solution {
   public int dominantIndex(int[] nums) {
		if(nums.length==1) {
    		return 0;
    	}
        int max=Integer.MIN_VALUE;  //最大数
        int second=Integer.MIN_VALUE;//第二大的数
        int index=0;
        for(int i=0;i<nums.length;i++) {
        	if(nums[i]>max) {
        		max=nums[i];
        		index=i;
        	}
        }
        for(int i:nums) {
        	if(i>second&&i<max) {
        		second=i;
        	}
        }
        if(second*2<=max) {
        	return index;
        }

        return -1;
	}
}

  

原文地址:https://www.cnblogs.com/MrSaver/p/9796522.html

时间: 2024-10-03 22:53:23

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 的长度范围在

[LeetCode] Largest Number At Least Twice of Others 至少是其他数字两倍的最大数

In a given integer array nums, there is always exactly one largest element. Find whether the largest element in the array is at least twice as much as every other number in the array. If it is, return the index of the largest element, otherwise retur

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

解: class Solution { public int dominantIndex(int[] nums) { for(int i = 0 ; i < nums.length ; i ++ ) { int max = nums[i]; for(int k = 0 ; k < nums.length ; k ++ ) { if(max < nums[k] * 2 && k != i ) { break; } if(k == nums.length -1) { retu

游戏并购再创高峰,第三季度高达122亿美金,是去年总额的两倍

最近,游戏公司并购开创了新纪录.在2014年的前三个季度里,并购额高达122亿美金,Xsolla今天为大家带来伦敦game investment bank Digi-Capital,这个数字是去年总额的两倍多. 今年有5大交易推动了并购热潮,有微软25亿收购Minecraft 制作商 Mojang:Facebook20亿收购了Oculus VR:巨人网络16亿进行私有化:亚马逊9亿7千万收购游戏直播视频网站Twitch:中基控股以9亿6千万购买了FunPlus的资产: 微软-Mojang的交易据

2807:两倍-poj

2807:两倍 总时间限制:  1000ms 内存限制:  65536kB 描述 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍. 比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍. 输入 一行,给出2到15个两两不同且小于100的正整数.最后用0表示输入结束. 输出 一个整数,即有多少个数对满足其中一个数是另一个数的两倍. 样例输入 1 4 3 2 9 7 18 22 0 样例输出 3

3星|丹尼尔&#183;卡尼曼《高情商领导力》:职场中情商比智商重要两倍

高情商领导力 全书是丹尼尔·卡尼曼几年前在<哈佛商业评论>等媒体上发表的文章.主要内容是:情商比智商更重要:领导类型有6种各有利弊:专注力非常重要. 由于是文章合集,每一篇都不够深入,合起来还是相对零散,读后有点失望,作为一本书深度不太够,本来可以详细展开说的. 译者应该是台湾人,翻译总体还不错,但是读起来总是感觉有点怪异,直到看到了“执行长”这个台湾词汇,大陆一般直接叫CEO.另外P146“顺流”一词现在一般是翻译为“心流”. 总体评价3星,有参考价值. 以下是书中一些内容的摘抄,[]中是我

java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍

pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 变更日志 创作目的 想为 java 设计一款便捷易用的拼音工具. 如何为 java 设计一款高性能的拼音转换工具 pinyin4j 特性 性能是 pinyin4j 的两倍 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标注方式 支持中文分词 快速开始 准备 jdk 1.7+ maven 引入 <dependency> <groupId>com.github.houbb</groupId&

webapp 1px显示两倍的问题

公司最近换新首页,按照设计师的要求<大家都在逛>的分割线要1个像素. .span-3{ width:33.3333%; &:not(:first-child){ &:before{ content: " "; display: block; width: 1rem/16*1; height: 100%; background-color: rgb(224,224,224);//#e0e0e0; float: left; } } img{ max-width:

(HDU)1303 -- Doubles(两倍)

题目链接:http://vjudge.net/problem/HDU-1303 合适的处理输入,把数据读入数组,对数组升序排序(减少循环次数) 用一个双重循环看每一个数,判断是不是前面出现的数的两倍. #include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <string> #incl