国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 长丰县| 丹棱县| 高唐县| 玉屏| 石狮市| 中西区| 得荣县| 邓州市| 栾城县| 蒲城县| 高邮市| 庆城县| 太仓市| 远安县| 普安县| 大英县| 富平县| 县级市| 内丘县| 会宁县| 定西市| 达州市| 宁国市| 卢龙县| 新化县| 响水县| 安国市| 黄梅县| 如皋市| 长顺县| 应用必备| 习水县| 教育| 尉氏县| 嘉鱼县| 蕉岭县| 昆山市| 乐都县| 龙海市| 元朗区| 安乡县|