raíces

1. La realización de binarios criterios de búsqueda

Complejidad de tiempo: O (logN)

    público  int binarySearch ( int [] nums, int objetivo) {
         int izquierda = 0 , derecha = nums.length - 1 ;
        mientras que (izquierda <= derecha) {
             int mediados = (derecha - izquierda);
            si (nums [MID] == objetivo) {
                 retorno nums [MID]; 
            } Demás  si (nums [MID] < objetivo) { 
                izquierda = centro + 1 ; 
            } Demás { 
                derecha = centro -1 ; 
            } 
            // ausencia de 
            retorno - 1 ; 
        }     
    }

 

2. Los requisitos que prescriben

Lograr int función sqrt (int x).

Calcula y devuelve la raíz cuadrada de x, donde x es un número entero no negativo.

Dado que el tipo de retorno es un entero, la parte entera del resultado para retener sólo la parte fraccional se redondea hacia abajo.

Ejemplo 1:

Entrada: 4
de salida: 2
Ejemplo 2:

Entrada: 8
de salida: 2
Descripción: 8 es la raíz cuadrada de 2,82842 ...,
  ya que el tipo de retorno es un entero, la parte fraccionaria es abajo redondeado.

clase Solution {
     público  int mySqrt ( int x) {
         si (x <= 1 ) de retorno x;
        int l = 1 , h = x;
        mientras que (l <= h) {
             int m = (h - l) / 2 + l;
            int num = x / m;
            si (m == num) {
                 retorno m; 
            } Demás  si (m < num) { 
                l = m + 1 ;
            } Más { 
                h = m - 1 ; 
            } 
        } 
        Volver h ; 
    } 
}

 

3. Dada una letra minúscula sólo contiene una disposición ordenada de letras y un objetivo letra deseada, se encuentran una serie ordenada que es más grande que la letra del alfabeto del objetivo mínimo.

En comparación, la letra array está circulando ordenó. Por ejemplo:

Si el objetivo carta target = 'z' y matriz ordenada de letras = [ 'a', ' b'], devuelve la respuesta 'a'.
Si el objetivo carta target = 'n' y una matriz ordenada de letras = [ 'm', ' z', 'c', 'f', 'j'], devuelve la respuesta 'z'.
 

Ejemplo:

Escriba las:
letras = [ "c", "F", "j"]
target = "a"
输出: "c"

Escriba las:
letras = [ "c", "F", "j"]
target = "C"
输出: "F"

Solución clase { 
    public char nextGreatestLetter (char [] letras, objetivo char) { 
        int l = 0, h = letters.length; 
        mientras que (l <h) { 
            int m = (h -l) / 2 + l; 
            de char c = letras [m]; 
            si (c> target) { 
                h = m; 
            } else { 
                l = m + 1; 
            } 
        } 
        Retorno l == letters.length? letras [0]: letras [l];    
    } 
}

4. La posición de inicio de destino en la matriz

Nums Dado una matriz de enteros dispuestas en orden ascendente, de acuerdo con el objetivo y un valor objetivo. Identificar un comienzo objetivo determinado y terminar las posiciones de la matriz.

Su complejidad temporal del algoritmo debe ser O (log n) nivel.

Si el objetivo no está presente en la matriz, de retorno [-1, -1].

Ejemplo 1:

De entrada: nums = [5,7,7,8,8,10], target = 8
de salida: [3,4]
Ejemplo 2:

De entrada: nums = [5,7,7,8,8,10], target = 6
de salida: [-1, -1]

Diferentes puntos: 1, diferentes de la cesión del derecho h frontera, dos condiciones de los ciclos diferentes (Condición 1 causa), 3, y devuelve el valor (condición 2 no es el caso ya que la detección de bordes de plomo aproximadamente igual, y por lo tanto tiene que ser determinada.)

    público  int [] searchRange ( int [] nums, int objetivo) {
         int l1 = GetFirst (nums, blanco);
        int l2 = GetFirst (nums, objetivo + 1 );
        si (! == L1 nums.length || nums [L1] = objetivo) {
             volver  nueva  int [] {- 1 , - 1 }; 
        } 
        Devolver  nueva  int [] {L1, L2 - 1 }; 
    } 
    Privada  int GetFirst ( int [] nums, int t) {
         int= L 0 , R & lt = nums.length;
         el tiempo (L < R & lt) {
             int MID = (R & lt - L) / 2 + L;
             int num = los nums [MID];
             IF (NUM> = T) { 
                R & lt = MID;    
            } else { 
                L = MID + 1. ; 
            } 
        } 
        // necesidad de verificar la presencia o ausencia encontraron 
        retorno L;   
    }

 

Supongo que te gusta

Origin www.cnblogs.com/zzytxl/p/12556331.html
Recomendado
Clasificación