LeetCode 747. por lo menos es el número máximo de otra digital (Java) dos veces

747. al menos dos veces el número máximo de otro digitales

En unos nums matriz dada en, siempre hay un elemento máximo.
Encontrará una gran variedad de si el elemento más grande de la matriz es al menos el doble de cualquier otro número.
Si es así, se devuelve el índice del elemento más grande, de lo contrario -1.

Ejemplo 1:
Entrada: nums = [3, 6, 1, 0]
de salida: 1
Explicación: 6 es el mayor número entero, para la otra matriz de enteros,
6 veces mayor que los otros elementos de la matriz. 6 índice es 1, por lo que regresó.

Consejo:
. Los nums una longitud en el intervalo [1, 50]
Cada nums [i] es un número entero en el intervalo [0, 100].

Fuente: estancia botón (LeetCode)
enlace: https: //leetcode-cn.com/problems/largest-number-at-least-twice-of-others
propiedad de la deducción de todas las redes. reimpresión comercial póngase en contacto con la reimpresión autorizada oficial, no comercial por favor indique la fuente.

Ideas : el valor máximo y las dos variables segundos más grandes se registraron y, finalmente, sólo el valor de segundo más grande es mayor que el doble de la máxima puede ser verificada

class Solution {
    public int dominantIndex(int[] nums) {
        int max=nums[0];
        int second=-1;
        int index=0;
        for(int i=0;i<nums.length;i++)
        {
            if(nums[i]>max)//如果当前值大于最大值
            {
                second=max;
                max=nums[i];
                index=i;
            }
            else if(nums[i]>second&&nums[i]<max)//如果当前值大于第二大值小于最大值
            {
                second=nums[i];
            }
        }
        if(max>=second*2)
        {
            return index;
        }
        else
        {
            return -1;
        }
    }
}
Publicado 88 artículos originales · ganado elogios 0 · Vistas 2155

Supongo que te gusta

Origin blog.csdn.net/nuts_and_bolts/article/details/105096638
Recomendado
Clasificación