在 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP