Uno: solución al problema
Este tema es una variante de la búsqueda binaria. Tiempo: log (n), espacio: O (1)
Dos: ejemplos de código completos (versión C ++ y versión Java)
C ++:
Solución de clase { public : int findMin (vector < int > & nums) { int low = 0 ; int high = nums.size () - 1 ; while (bajo < alto) { int medio = bajo + (alto-bajo) / 2 ; if (nums [mid]> nums [high]) low = mid + 1 ; más alto = medio; } return nums [bajo]; } };
Java:
Solución de clase { public int findMin ( int [] nums) { int low = 0 ; int high = nums.length- 1 ; while (bajo < alto) { int medio = bajo + (alto-bajo) / 2 ; if (nums [mid]> nums [high]) low = mid + 1 ; más alto = medio; } return nums [bajo]; } }