国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 丰台区| 亚东县| 万盛区| 体育| 买车| 五大连池市| 大理市| 曲周县| 抚宁县| 新蔡县| 浦东新区| 长兴县| 龙川县| 奈曼旗| 汉中市| 陵水| 宣汉县| 巨野县| 德昌县| 陵川县| 三江| 阳信县| 高密市| 五台县| 十堰市| 望谟县| 京山县| 南通市| 旺苍县| 自治县| 阜平县| 武城县| 界首市| 禹州市| 伊川县| 隆化县| 平利县| 特克斯县| 灵寿县| 雷山县| 德江县|