Suppose an array of length n sorted in ascending order is rotated between 1 and n times. For example, the array nums = [0,1,2,4,5,6,7] might become:

- [4,5,6,7,0,1,2] if it was rotated 4 times.
- [0,1,2,4,5,6,7] if it was rotated 7 times.

Notice that rotating an array [a[0], a[1], a[2], …, a[n-1]] 1 time results in the array [a[n-1], a[0], a[1], a[2], …, a[n-2]].

Given the sorted rotated array nums of unique elements, return the minimum element of this array.

You must write an algorithm that runs in O(log n) time.

**Example 1:**

Input: nums = [3,4,5,1,2]

Output: 1

Explanation: The original array was [1,2,3,4,5] rotated 3 times.

**Example 2:**

Input: nums = [4,5,6,7,0,1,2]

Output: 0

Explanation: The original array was [0,1,2,4,5,6,7] and it was rotated 4 times.

**Example 3:**

Input: nums = [11,13,15,17]

Output: 11

Explanation: The original array was [11,13,15,17] and it was rotated 4 times.

We use a `modified` binary search to find the minimum element:-

- At every point, compare (‘i’, ‘mid’) with (‘mid+1’, ‘j’). Whichever section has the lower value, let’s move that direction.
if ( (a < c && a < d) || (b < c && b < d) ) // go left else // go right

- Return the last number remaining in the recursion (when i === j)

/** * @param {number[]} nums * @return {number} */ var findMin = function(nums) { return findMinRecursive(nums, 0, nums.length-1) }; var findMinRecursive = function(nums, i, j) { // one or two digits if ( i === j ) return nums[i]; let mid = i + Math.floor((j-i)/2); let a = nums[i]; let b = nums[mid]; let c = nums[mid+1]; let d = nums[j]; if ( (a < c && a < d) || (b < c && b < d) ) { // go left return findMinRecursive(nums, i, mid); } else { // go right return findMinRecursive(nums, mid+1, j); } } |

omeprazole price buy metoprolol 50mg pills buy medrol us

academia writing lyrica 75mg canada buy clarinex 5mg pills

order zetia 10mg pills ezetimibe 10mg oral buy domperidone

generic minocycline 50mg pioglitazone 15mg for sale arava 20mg tablet

molnupiravir 200 mg uk prevacid 30mg for sale order lansoprazole pill

irbesartan 300mg oral clobetasol medication pepcid 20mg uk

cost altace carvedilol 6.25mg uk carvedilol sale