<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      二分法中的逼近法

      leetcode地址:

      https://leetcode.com/problems/find-smallest-letter-greater-than-target/description/

      難度:easy

      描述:

      Given a list of sorted characters letters containing only lowercase letters, and given a target letter target, find the smallest element in the list that is larger than the given target.

      Letters also wrap around. For example, if the target is target = 'z'and letters = ['a', 'b'], the answer is 'a'.

      Examples:

      Input:
      letters = ["c", "f", "j"]
      target = "a"
      Output: "c"
      
      Input:
      letters = ["c", "f", "j"]
      target = "c"
      Output: "f"
      
      Input:
      letters = ["c", "f", "j"]
      target = "d"
      Output: "f"
      
      Input:
      letters = ["c", "f", "j"]
      target = "g"
      Output: "j"
      
      Input:
      letters = ["c", "f", "j"]
      target = "j"
      Output: "c"
      
      Input:
      letters = ["c", "f", "j"]
      target = "k"
      Output: "c"
      

       

      Note:

      1. letters has a length in range [2, 10000].
      2. letters consists of lowercase letters, and contains at least 2 unique letters.
      3. target is a lowercase letter.

      簡單翻譯一下:

      給定一個有序的字符數組 letters 和一個字符 target,要求找出 letters 中大于 target 的最小字符,如果找不到就返回第 1 個字符。

      這道題可以用遍歷法,但是如果向讓時間復雜度更小,可以用二分法,時間復雜度為O(logN)。就這道題而言本身并不難,二分法只要注意一下邊界條件。但是從這個題目里,我們可以提煉出一個比較通用的應用場景,即在一個有序的數組中(不一定是字母或者數字),有序意味著元素按照某種屬性遞增排列(遞減的情況是等價的),屬性相同的元素一定是相鄰的,這時,我們在這個數組中找出屬性滿足特定條件的最小元素,或最大元素,這兩類問題都可以用二分法的變種來實現。下面分為兩種情況:

      1. 求滿足特定條件的最小元素,我們假設數組是遞增的,也就是求最靠近左邊的元素。對于這種問題,我們在每次對中間元素進行判斷時(假設中間下標是m),首先判斷中間元素是否大于或者等于(注意這里等于也算在內),如果是,那么將上界調整為中間下標m,否則將下屆調整為m+1。這里計算m的方法為m=(l+h)/2;

      2. 求滿足特定條件的最大元素,也就是求最靠近右邊的元素,這時我們需要將區間不斷往右邊逼近。判斷中間元素是否小于或者等于目標值,如果是,將下屆調整為m,否則將上界調整為m-1。計算m的方法為m=(l+h+1)/2。這里有個很隱蔽的邊界問題,如果m的計算方法仍然使用m=(l+h)/2,那么當h-l==1時,此時的m=l,這時如果中間元素等于目標值,那么就會形成死循環,因為此時中間下標和下屆是相同的,所以下屆得不到調整,形成死循環。

      posted on 2019-07-07 14:09  _朱葛  閱讀(937)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 精品一区二区三人妻视频| 欧美z0zo人禽交另类视频| 久久青青草原国产精品最新片| 福利在线视频一区二区| 久久精品欧美日韩精品| 日韩精品 在线一区二区| 亚洲伊人久久精品影院| 国产V日韩V亚洲欧美久久| 久久婷婷国产精品香蕉| 狠狠色噜噜狠狠狠狠777米奇| 日本一区三区高清视频| 国产成人久久综合一区| 国产99青青成人A在线| 欧美私人情侣网站| 国产免费午夜福利在线播放| 亚洲免费成人av一区| 不卡国产一区二区三区| 四虎国产精品免费久久| 又爆又大又粗又硬又黄的a片| 午夜福利偷拍国语对白| 欧美白人最猛性xxxxx| 日韩精品视频一二三四区| 亚洲人成网站999久久久综合| 色悠久久网国产精品99| 国产一区在线观看不卡| 麻豆久久天天躁夜夜狠狠躁| 亚洲中文字幕日韩精品| 亚洲国产成人AⅤ片在线观看| 国产一区二区在线观看粉嫩| 99re热这里只有精品视频| 综合色一色综合久久网| 精品一区二区三区四区激情 | 日韩高清国产中文字幕| 视频专区熟女人妻第二页| 少妇被粗大的猛烈进出69影院一| 无套内谢少妇毛片aaaa片免费 | 实拍女处破www免费看| 国产三级精品三级在线看| www国产精品内射熟女| 免费夜色污私人影院在线观看| 无码AV无码免费一区二区|