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[].
```