1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class Solution {
public:
int min;
void search(int left, int right, vector<int>& nums)
{
if (right < left)
{
return;
}
int mid = (left + right) / 2;
if (nums[mid] < min) {
min = nums[mid];
search(left, mid - 1, nums);
search(mid + 1, right, nums);
} else if (nums[mid] >= min) {
search(left, mid - 1, nums);
search(mid + 1, right, nums);
}
}
int findMin(vector<int>& nums) {
min = nums[0];
search(0, nums.size() - 1, nums);
return min;
}
};
|