|
发表于 2020-4-27 10:44:58
|
显示全部楼层
C++
1.自己做的
- class Solution {
- public:
- int findMin(vector<int>& nums) {
- int len = nums.size();
- if(len == 1) return nums[0];
- for(int i = 1; i < len; i++){
- if(nums[i] < nums[i-1]) return nums[i];
- }
- return nums[0];
- }
- };
复制代码
2.参考题解二分法做的
- class Solution {
- public:
- int findMin(vector<int>& nums) {
- int left = 0, right = nums.size()-1;
- while(left <= right){
- if(nums[right] >= nums[left])return nums[left];
- int mid = left + (right - left) /2;
- if(nums[mid] >= nums[left]){
- left = mid + 1;
- }
- else if(nums[mid] < nums[left]){
- right = mid;
- }
- }
- return -1;
- }
- };
复制代码
两个方法提交结果差不多 |
|