前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 747. 至少是其他数字两倍的最大数

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

作者头像
Michael阿明
发布2020-07-13 15:24:46
2610
发布2020-07-13 15:24:46
举报

1. 题目

在一个给定的数组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].

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {
public:
    int dominantIndex(vector<int>& nums) {
    	int max = -1, secMax = -1, id = 0;
        for(int i = 0; i < nums.size(); ++i)
        {
        	if(nums[i] > max)//比最大的大
        	{
				secMax = max;//更新第二大的为max
        		max = nums[i];//max更新为更大的
        		id = i;
        	}
        	else if(nums[i] <= max && nums[i] > secMax)
        		secMax = nums[i];//更新第二大的为max
        }
        if(max >= 2*secMax)
        	return id;
        return -1;
    }
};

4 ms 11 MB

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档