国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

153. Find Minimum in Rotated Sorted Array

2019-11-08 03:02:36
字體:
供稿:網(wǎng)友

題目

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

You may assume no duplicate exists in the array.

Subscribe to see which companies asked this question.


思路

兩種情況,一種第一個比最后一個小,直接返回第一個。另一種移位了,最小的在中間,折半和第一個元素比較。


代碼

class Solution {public: int findMin(vector<int>& nums) { //兩種情況,一種第一個比最后一個小,直接返回第一個 //另一種移位了,最小的在中間,折半和第一個元素比較 int length = nums.size(); if(length == 0) { return 0; } if(length == 1) { return nums[0]; } if(nums[0] < nums[length-1]) { return nums[0]; } //這要從下標1開始,nums[0]此時肯定不是最小的,不能參與排序,不然當最后middle==0時可能會出問題 return getMinElement(nums,1,length-1,nums[0]); } int getMinElement(vector<int>&nums,int begin,int end,int compareNum) { if(begin >= end) { return nums[begin]; } //防止溢出 int middle = begin + (end - begin)/2; if(nums[middle] > compareNum) { return getMinElement(nums,middle+1,end,compareNum); } else { //返回當前數(shù)字和另一半求得值得最小值 return min(nums[middle],getMinElement(nums,begin,middle-1,compareNum)); } }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 靖州| 平南县| 阿克陶县| 始兴县| 巴马| 和龙市| 葫芦岛市| 宁化县| 淮阳县| 于田县| 沧源| 维西| 醴陵市| 福建省| 大丰市| 夹江县| 冷水江市| 綦江县| 四川省| 临泉县| 临汾市| 田阳县| 玛曲县| 深水埗区| 富宁县| 永仁县| 积石山| 两当县| 九江市| 横峰县| 庆阳市| 舟曲县| 分宜县| 天祝| 东阿县| 建昌县| 封开县| 涿州市| 衡阳县| 镇原县| 克山县|