You have a
sorted and rotated
array
arr[]
of size
n
where elements are sorted and rotated circularly. Write a program to find the minimum element in the array.
Problem Note

Suppose the elements in the array
arr[]
are [1, 2, 3, 4, 5, 6, 7], then rotating by three times array becomes [4, 5, 6, 7, 1, 2, 3].  You wonâ€™t be provided with the number of times array is rotated.
 The array will not contain duplicates.
 Also, think about the case when there are duplicates. Does your current solution work?
Example 1
Input: arr[] = [4, 5, 6, 7, 1, 2, 3]
Output: 1
Explanation: The minimum element in arr[] is 1.
Example 2
Input: arr[] = [8, 9, 4, 5, 6, 7 ]
Output: 4
Explanation: The smallest element is 4 in the array arr[].
Example 3
Input: arr[] = [3, 4, 5, 6, 7]
Output: 3
Explanation: The minimum element is 3 in the array arr[].
Example 4
Input: arr[] = [3, 2]
Output: 2
Explanation: The minimum element is 2 in the array arr[].