在 Python 中查詢大於目標的最小字母


假設我們有一個已排序的字元字母列表。僅包含小寫字母,現在我們有一個目標字母 t,我們必須找到列表中大於給定目標的最小元素。

字母也會迴圈。因此,如果目標是 t = 'z',字母 = ['a', 'b'],則答案為 'a'。

所以,如果輸入類似於 ["c", "f", "j"], t = 'a',則輸出將是 'c'。

為解決此問題,我們將遵循以下步驟 -

  • l := 0
  • r := letters 的大小 - 1
  • while l <= r, 執行
    • mid :=(l + r) / 2 為整數
    • if letters[mid] > target, 則
      • r := mid -1
    • 否則,
      • l := mid + 1
  • 返回 letters[l mod letters 的大小]

讓我們看看以下實現以更好地理解 -

示例

 即時演示

class Solution:
   def nextGreatestLetter(self, letters, target):
      l = 0
      r = len(letters) - 1
      while l <= r:
         mid = (l + r)//2
         if letters[mid] > target:
            r = mid -1
         else:
            l = mid + 1
      return letters[l % len(letters)]
ob = Solution()
print(ob.nextGreatestLetter(["c", "f", "j"], "a"))

輸入

["c", "f", "j"], "a"

輸出

c

更新日期: 04-07-2020

836 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告