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;
}
}
}