码迷,mamicode.com
首页 > 其他好文 > 详细

744. 寻找比目标字母大的最小字母

时间:2020-06-08 14:52:54      阅读:44      评论:0      收藏:0      [点我收藏+]

标签:tar   info   image   int   lang   python   字母   letter   gre   

技术图片
技术图片
技术图片
技术图片
技术图片

思路:二分法。

class Solution(object):
    def nextGreatestLetter(self, letters, target):
        letters = list(set(letters))
        letters.sort()
        if target in letters:
            index = letters.index(target)
            if index < len(letters) - 1:
                return letters[(index % len(letters)) + 1]
            if index == len(letters) - 1:
                return letters[(index + 1) % len(letters)]
        l, r = 0, len(letters) - 1
        while l < r:
            mid = int(l + (r - l) / 2)
            if letters[mid] > target:
                r = mid
            else:
                l = mid + 1
        if l == len(letters) - 1 and letters[-1] < target:
            return letters[(l + 1) % len(letters)]
        else:
            return letters[l % len(letters)]

744. 寻找比目标字母大的最小字母

标签:tar   info   image   int   lang   python   字母   letter   gre   

原文地址:https://www.cnblogs.com/panweiwei/p/13065286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!