1:問題の解決策
このトピックは、バイナリ検索の変形です。時間:ログ(n)、スペース:O(1)
2:完全なコード例(C ++バージョンとJavaバージョン)
C ++:
クラスSolution { public : int findMin(vector < int >&nums ) { int low = 0 ; int high = nums.size()- 1 ; while(low < high) { int mid = low +(high-low)/ 2 ; if(nums [mid]> nums [high])low = mid + 1 ; それ以外の場合、高= 中。 } return nums [low]; } };
Java:
クラスSolution { public int findMin(int [] nums ) { int low = 0 ; int high = nums.length- 1 ; while(low < high) { int mid = low +(high-low)/ 2 ; if(nums [mid]> nums [high])low = mid + 1 ; それ以外の場合、高= 中。 } return nums [low]; } }