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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

[LeetCode] Find Minimum in Rotated Sorted Array

2019-11-15 01:13:29
字體:
供稿:網(wǎng)友
[LeetCode] Find Minimum in Rotated Sorted Array

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

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

Find the minimum element.

You may assume no duplicate exists in the array.

這道題主要是因為是rotated的所以會很麻煩。為了簡化,可以每次都將剩下的array cut half every time。

拿第一個和最中間的那個進(jìn)行比較。如果依舊是第一個比較小,那么我們就可以只看后半half。(rotated的話,第一個肯定比最后一個大)

反之則我們肯定要看前半部分了。(比中間那個小的肯定是它前面的一個,sorted的嘛。)

然后while的條件是start<end-1,因為start肯定!=end。

不過最后還是要比較一下目前的Min,nums[start],nums[end],specail case如果middle one or first one就是smallest呢。

代碼如下。~

public class Solution {    public int findMin(int[] nums) {      //special case      if(nums.length==0){          return nums[0];      }      int start=0;      int end=nums.length-1;      int min=nums[0];           while(start<end-1){ //start and end couldn't be equal           int a=(start+end)/2;          if(nums[start]<nums[a]){              min=Math.min(min,nums[start]);              start=a+1;          }else{              min=Math.min(min,nums[a]);              end=a-1;          }      }      min=Math.min(min,Math.min(nums[start],nums[end]));      return min;    }}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 木兰县| 建阳市| 丹巴县| 鄂托克前旗| 延安市| 广宁县| 错那县| 启东市| 连州市| 惠水县| 张家口市| 新密市| 永修县| 汕尾市| 桂林市| 永安市| 家居| 罗甸县| 许昌市| 大洼县| 琼结县| 浏阳市| 星子县| 印江| 泰和县| 宜兰市| 大同县| 郯城县| 嫩江县| 堆龙德庆县| 柞水县| 耿马| 萨迦县| 裕民县| 铜川市| 永吉县| 江城| 乳源| 新邵县| 东安县| 西峡县|