Skip to content

Commit a2d507f

Browse files
committed
Add Q153, Q154
1 parent 3814d63 commit a2d507f

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution {
2+
public:
3+
int findMin(vector<int>& nums) {
4+
int len = nums.size();
5+
if (len == 0) return 0;
6+
if (len == 1) return nums[0];
7+
if (len == 2) return min(nums[0], nums[1]);
8+
if (nums[0] < nums[len-1]) return nums[0];
9+
int mid = (len-1) / 2;
10+
if (nums[0] < nums[mid]) {
11+
vector<int> temp(nums.begin()+mid, nums.end());
12+
return findMin(temp);
13+
}
14+
vector<int> temp(nums.begin(), nums.begin()+mid+1);
15+
return findMin(temp);
16+
}
17+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class Solution {
2+
public:
3+
int findMin(vector<int>& nums) {
4+
int len = nums.size();
5+
if (len == 0) return 0;
6+
if (len == 1) return nums[0];
7+
if (len == 2) return min(nums[0], nums[1]);
8+
if (nums[0] < nums[len-1]) return nums[0];
9+
int mid = (len-1) / 2;
10+
if (nums[0] > nums[len-1]) {
11+
if (nums[0] <= nums[mid]) {
12+
vector<int> temp(nums.begin()+mid, nums.end());
13+
return findMin(temp);
14+
}
15+
vector<int> temp(nums.begin(), nums.begin()+mid+1);
16+
return findMin(temp);
17+
}
18+
if (nums[0] < nums[mid]) {
19+
vector<int> temp(nums.begin()+mid, nums.end());
20+
return findMin(temp);
21+
} else if (nums[0] > nums[mid]) {
22+
vector<int> temp(nums.begin(), nums.begin()+mid+1);
23+
return findMin(temp);
24+
}
25+
vector<int> temp(nums.begin()+mid, nums.end());
26+
vector<int> temp1(nums.begin(), nums.begin()+mid+1);
27+
return min(findMin(temp), findMin(temp1));
28+
}
29+
};

0 commit comments

Comments
 (0)