Más de la mitad de los números para demostrar la seguridad de la oferta 28. matrices aparecen

Más de la mitad de la matriz aparecen 28. Los números

título Descripción

Hay un número de serie número que aparece 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.

Un pensamiento:

Ordenación de una matriz para determinar el medio de la repetición de elementos si hay más de la mitad de la longitud de la matriz, si más de lo que es, o no es

. 1  java.util.Arrays importación;
 2  pública  clase Solution {
 3.      Pública  int MoreThanHalfNum_Solution ( int [] Array) {
 4.          IF (Array == nula || ser Array.length == 0 ) {
 5.              Retorno  0 ;
 . 6          }
 . 7          // Ordenar 
8.          Arrays.sort (array);
 . 9          // número de elementos de la estadística media 
10          int Center = array [BE Array.length / 2 ];
 . 11          int CNT = 0 ;
 12 es         para ( int I = 0 ; I <ser Array.length; I ++ ) {
 13 es              SI (Array [I] == Center) {
 14                  CNT ++ ;
 15              }
 16          }
 . 17           
18 es          // si más de la mitad de la salida, o no existen 
19.         retorno (CNT> ser Array.length / 2 ) Centro :? 0 ;
 20 es      }
 21 es }

 

Pensar dos: 

 La idea de utilizar posiciones ofensivas y defensivas:
el primer dígito como las posiciones defensivas primer soldado; count = 1;
 experimentar los mismos elementos, contar ++;
 encuentro los mismos elementos, que es el enemigo, matriz, count--; cuando el recuento de cara es 0, nuevo valor de i como las nuevas posiciones defensivas soldados, seguirá siendo en la última posición de los soldados, es probable que sea el elemento principal.
 Además de un ciclo, el número de registros para ver si el soldado es mayor que la matriz general puede ser.

1  java.util.Arrays importación;
2  pública  clase Solution {
 3      público  int MoreThanHalfNum_Solution ( int [] array) {
 4          si (array == nula || Array.length == 0 ) {
 5              retorno  0 ;
6          }
 7          int soldado = array [ 0 ];
8          int count = 1 ;
9          para ( int i = 1 ; i <Array.length; i ++ ) {
 10              si(array [i] == soldado) {
 11                  recuento ++ ;
12              } más {
 13                  count-- ;
14                  Si (recuento == 0 ) {
 15                      soldado = array [i];
16                      recuento ++ ;
17                  }
 18              }
 19          }
 20          count = 0 ;
21          para ( int i = 0 ; i <Array.length; i ++ ) {
 22             si (array [i] == soldado) {
 23                  recuento ++ ;
24              }
 25          }
 26          de retorno (contador> Array.length / 2 )? soldado: 0 ;
27      }
 28 }

 

Supongo que te gusta

Origin www.cnblogs.com/hi3254014978/p/12588435.html
Recomendado
Clasificación