zoukankan      html  css  js  c++  java
  • 744. 寻找比目标字母大的最小字母







    思路:二分法。

    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)]
    
  • 相关阅读:
    UVa
    UVa
    USACO
    USACO
    USACO
    Floyed算法学习
    POJ
    POJ
    codeforces 796C Bank Hacking
    codeforces 796B Find The Bone
  • 原文地址:https://www.cnblogs.com/panweiwei/p/13065286.html
Copyright © 2011-2022 走看看