El número de veces que el número que aparece en la matriz de tipo: Cara preguntas cincuenta y tres

 

un tema: el número de veces que el número que aparece en la matriz especie
método: utilizando una búsqueda binaria para encontrar ese número, y luego se expanden las estadísticas sobre
Segundo método: búsqueda, respectivamente binaria para encontrar el primer y último k K, y luego restar

 estática  int findk ( int a [], int k) {
              si (a == nula || a.length <1) volver 0 ;
             Int ser = 0 ;
             int final = a.length-1 ;
             int i1 = -1 ;
             int inter;
             mientras que (ser <= finales) { 
                  inter = (ser + final) >> 1 ;
                  si (a [inter] < k) 
                      ser = inter + 1 ;
                  otra cosa  si(a> [inter] k) 
                      final = inter-1 ;
                  más {
                       si (inter == 0 || un [inter-1] < k) { 
                           i1 = inter;
                           romper ; 
                      } 
                      Otro  
                           extremo = inter-1 ;               
                  }     
             } 
             Si (i1 == - 1) de retorno 0 ; 
             ser = i1; 
             final = a.length-1 ;
             En ti2 = -1 ;
             mientras que (ser <= finales) { 
                  inter = (ser + final) >> 1 ;
                  si (a [inter] < k) 
                      ser = inter + 1 ;
                  más  si (a> [inter] k) 
                      final = inter-1 ;
                  más {
                       si (inter == a.length-1 || un [inter + 1]> k) 
                        { 
                           i2 = inter;
                           romper ; 
                      }
                      otro  
                           ser = inter + 1 ;                
                  }                  
             } 
             Si (i2> = i1)
                   retorno i2-i1 + 1 ;
             volver 0 ; 
         }

Título Segundo: el elemento 0-n-1 deleción
una longitud en orden ascendente en los números matriz n-1 intervalos numéricos únicos dentro de 0-n-1 de la n uno digital y solamente un dígito de la matriz, encontrar el digital de
método: el uso directo de búsqueda binaria, si los valores y los subíndices son iguales, entonces los dígitos a la derecha si el valor es mayor que el índice, y está en un valor igual al índice de la readmisión por el estándar actual, de lo contrario, a la izquierda

1   estática  int GetmissNumber ( int a []) {
 2               si (a == nula || a.length <1) volver 0 ;
3               Int BE = 0 ;
4               int final = a.length-1 ;
5               int <u> i1 </ u> = - 1 ;
6               int inter;
7               , mientras que (ser <= finales) {
 8                    inter = (ser + final) >> 1 ;
9                    si (a [inter] == inter)
 10                        ser = inter + 1 ;
11                    persona{
 12                        si (inter == 0 || (a [inter]> inter && un [-1 inter] == inter-1 ))
 13                             de retorno inter;
14                        final = inter-1 ;
15                    }             
 16               }        
 17               de retorno -1 ;
18           }

Título III: Encontrar el mismo índice de valor de elemento de
método: búsqueda binaria; si el índice es mayor que el valor que el derecho, si el índice es menor que el valor en el lado izquierdo, puede no encontrar -1

Supongo que te gusta

Origin www.cnblogs.com/niliuxiaocheng/p/12593321.html
Recomendado
Clasificación