题目

给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。
请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。
示例 1:
输入:nums = [3,6,1,0]
输出:1
解释:6 是最大的整数,对于数组中的其他整数,6 至少是数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。
示例 2:
输入:nums = [1,2,3,4]
输出:-1
解释:4 没有超过 3 的两倍大,所以返回 -1 。
示例 3:
输入:nums = [1]
输出:0
解释:因为不存在其他数字,所以认为现有数字 1 至少是其他数字的两倍。
提示:
1 <= nums.length <= 50
0 <= nums[i] <= 100
nums 中的最大元素是唯一的
来源:力扣(LeetCode)

解题思路

  只需要完整遍历一遍数组即可。首先需要维护三个变量,第二大的值,第一大的值还有第一大的值的下标;当第一大的值需要更换时,把赋交给第二大的值并且更新下标。假设数组的最大值在数组中间,那么第二大的值可能在数组右边也可能在数组左边,第一大的值更新的时候已经把左边处理了,所以第二大的值仍需要和右边的值进行对比。

class Solution:def dominantIndex(self, nums: List[int]) -> int:MIN=-1MAX=nums[0]index=0for i in range(1,len(nums)):if MAX<nums[i]:MIN=MAX    #第一大的值退位MAX=nums[i]index=icontinueif MIN<nums[i]:  #在数组左边寻找第二大的值MIN=nums[i]return index if MIN*2<=MAX else -1

LeetCode简单题之至少是其他数字两倍的最大数相关推荐

  1. 【快乐水题】747. 至少是其他数字两倍的最大数

    原题: 力扣链接:747. 至少是其他数字两倍的最大数 题目简述: 给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 . 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字 ...

  2. php 最大数字,PHP 计算至少是其他数字两倍的最大数的实现代码

    计算至少是其他数字两倍的最大数 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是数组中每个其他数字的两倍. 如果是,则返回最大元素的索引,否则返回-1. 示例 1: ...

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

    1. 题目 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是数组中每个其他数字的两倍. 如果是,则返回最大元素的索引,否则返回-1. 示例 1: 输入: nums ...

  4. 【leetcode-数组】至少是其他数字两倍的最大数

    题目: 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是数组中每个其他数字的两倍. 如果是,则返回最大元素的索引,否则返回-1. 示例 1: 输入: nums = ...

  5. LintCode 1053. 至少是其他数字两倍的最大数 JavaScript算法

    描述 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是数组中每个其他数字的两倍. 如果是,则返回最大元素的索引,否则返回-1. 说明 nums 的长度范围在[1, ...

  6. C#LeetCode刷题之#747-至少是其他数字两倍的最大数( Largest Number At Least Twice of Others)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3746 访问. 在一个给定的数组nums中,总是存在一个最大元素 ...

  7. LeetCode简单题之有多少小于当前数字的数字

    题目 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目. 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i ...

  8. LeetCode简单题之图片平滑器

    题目 包含整数的二维矩阵 M 表示一个图片的灰度.你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽 ...

  9. ​LeetCode刷题实战375:猜数字大小 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

最新文章

  1. [机器学习]机器学习笔记整理12-线性回归概念理解
  2. spark rdd map java_如何在spark RDD(JavaRDD)中获取记录的文件名
  3. 计算机组成原理译码器选择,计算机组成原理第三章习题参考解析.doc
  4. linux下grpc安装编译,linux下安装grpc插件 (c++和go语言)
  5. 谈谈Dictionarylt;T1,T2gt;和Listlt;Tgt;的问题 [转]
  6. java8(1)--- lambda
  7. android播放器实现自动播放,Android实现自动播放图片功能
  8. 腾讯企业邮箱外域邮件发送失败原因及其解决方案
  9. c语言 头文件 重复包含,C语言头文件如何避免重复包含
  10. 爬虫一:用正则表达式爬取图片
  11. 电脑出现问题。你的PIN不可用,请单击以重置——解决方案总结
  12. asp.net通用的sql插入与修改语句,一劳永逸
  13. JavaScript——JSON
  14. 辩证唯物论和唯物辩证法区别
  15. 清华p-tuning | GPT也能做NLU?清华推出p-tuning方法解决GPT系列模型fine-tuning效果比BERT差问题
  16. Db2用户与linux用户的关系,DB2 UDB 用户和组帐户命名规则
  17. 怎样将dwg转换成pdf格式?
  18. 节点光端机在高速公路监控系统中的应用介绍
  19. 日语常用寒暄语及标日上基本课文
  20. 在Visual Studio 2010[VC++]中使用ffmpeg类库

热门文章

  1. 设置腾讯云linux服务器中 MySQL 允许远程访问
  2. java发送简单邮件_Java程序实现发送简单文本邮件
  3. debian10 简单的bash脚本监控apache运行状态
  4. 网络安全工具:Wireshark
  5. Adam那么棒,为什么还对SGD念念不忘 (1) —— 一个框架看懂优化算法
  6. 初学MyBatis-Plus
  7. LeetCode简单题之按奇偶排序数组
  8. TensorFlow创建DeepDream网络
  9. 客快物流大数据项目(五十二):根据数据库表及字段创建公共模块
  10. 2021年大数据Flink(二十九):Flink 容错机制 Savepoint