El número de veces (aplicación Java) Más de la mitad de la matriz aparece
Título Descripción
serie El número de veces que aparece un número más de la mitad de la longitud de la matriz, encontrar este número. Por ejemplo, una longitud de la matriz de entrada 9 {1,2,3,2,2,2,5,4,2}. Dado que el número 2 aparece cinco veces, más de la mitad de la longitud de la matriz en la matriz, la salida 2. Si hay 0 de salida.
Ideas de resolución de problemas
Hay un número de serie apariencia variedad más de la mitad, lo que significa que el número de veces que aparece el aspecto que todos los otros números y más grande. Así podemos ahorrar dos valores en el tiempo a través de la matriz, uno es el número actual, un número de veces que aparece numéricas. Y actualmente almacenados bajo el mismo número si la matriz, los tiempos ++ o veces-. Si los tiempos == 0, el siguiente número se guarda, y los tiempos establece en 1. Debido a que existe un mayor número de la mitad del número de todos será capaz de asegurar que esta es la última vez que el número de veces que se establece en el número 1.
Cabe señalar que los resultados obtenidos de esta manera, no garantiza la existencia de tales números, todos necesitamos para determinar si las conclusiones de esta condición se cumple, si no se nota no existe. (Ejemplo: [1,1,1,2,2,2,3], el resultado final es de tres, pero el número no exceda de 3 aparece medio)
la implementación del código
public class Solution {
public int MoreThanHalfNum_Solution(int [] array) {
int length = array.length;
int result = array[0];
int times = 1;
for(int i = 1; i < length; i++) {
if(times == 0) {
result = array[i+1];
times = 1;
}
else if(array[i] == result) {
times++;
}
else if(array[i] != result) {
times--;
}
}
times = 0;
for(int i = 0; i < length; i++) {
if(array[i] == result) {
times++;
}
}
if(times > length/2) {
return result;
}
else
return 0;
}
}