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