título Descripción
El comienzo de una matriz de varios elementos se trasladó a la final de la matriz, la matriz que llamamos rotación. Un orden no descendente de la matriz de entrada de una rotación de la rotativa array elemento más pequeño de salida. Por ejemplo, una matriz {3,4,5,1,2} {1,2,3,4,5} es una rotación de la matriz a un mínimo. NOTA: Todos los elementos se dan en mayor que 0, si el tamaño de la matriz es 0, retorno 0.
análisis
La búsqueda binaria.
código
class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
if(rotateArray.empty())
return 0;
int low = 0;
int high = rotateArray.size() - 1;
int mid = 0;
while(low < high) {
if(rotateArray[low] < rotateArray[high])
return rotateArray[low];
mid = low + (high - low) / 2;
if(rotateArray[low] < rotateArray[mid])
low = mid + 1;
else if(rotateArray[mid] < rotateArray[high])
high = mid;
else
low++;
}
return rotateArray[low];
}
};