leetcode-747. Largest Number Greater Than Twice of Others

747. Largest Number Greater Than 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 return -1.

Example 1:

Input: nums = [3, 6, 1, 0]
Output: 1
Explanation: 6 is the largest integer, and for every other number in the array x,
6 is more than twice as big as x.  The index of value 6 is 1, so we return 1.

Example 2:

Input: nums = [1, 2, 3, 4]
Output: -1
Explanation: 4 isn't at least as big as twice the value of 3, so we return -1.

Note:

  1. nums will have a length in the range [1, 50].
  2. Every nums[i] will be an integer in the range [0, 99].


此题做于 leetcode Weekly Contest 64

推荐大家去试一下这个每周比赛~

题意:

给定一个数组,找出数组里是否存在 最大的一个数 是 第二大数 的两倍还多。存在返回下标;不存在返回-1

思路:

这题就比较简单了,遍历找到最大的数字保存数字和下标,再遍历找到第二大的数字。按要求返回就可以了。 
只需要O(n)

class Solution {
    public int dominantIndex(int[] nums) {
        int max = Integer.MIN_VALUE,flag=0;
        for (int i =0 ;i<nums.length;i++){
            if(nums[i]>=max) {
                max = nums[i];
                flag = i;
            }
        }
        Arrays.sort(nums);
        if(max >= 2*nums[nums.length-2]) return flag;
        return -1;
    }
}


posted @   link98  阅读(176)  评论(0编辑  收藏  举报
编辑推荐:
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
阅读排行:
· BotSharp + MCP 三步实现智能体开发
· AI团队比单打独斗强!CrewAI多智能体协作系统开发踩坑全解析
· 动物智能之数据标注员——狗篇
· 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
· 「硬核实战」回调函数到底是个啥?一文带你从原理到实战彻底掌握C/C++回调函数
点击右上角即可分享
微信分享提示