• 744. Find Smallest Letter Greater Than Target


    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"
    找到数组里边的大于目标的最小值
    思路如下,用二分查找找到目标即可,如果找不到则返回数组的第一位
    public char nextGreatestLetter(char[] letters, char target) {
            int lo = 0, hi = letters.length;
            while (lo < hi) {
                int mi = lo + (hi - lo) / 2;
                if (letters[mi] <= target) lo = mi + 1;
                else hi = mi;
            }
            return letters[lo % letters.length];
        }

    取mod是因为如果找不到lo最后会变成hi即letters.length

    这种情况下还是返回第一个

  • 相关阅读:
    django 模板继承
    redis集群环境配置
    压力测试工具:apache bench(ab)
    php yield关键字以及协程的实现
    php图片木马实现原理
    关于接口幂等性
    关于easyswoole实现websocket聊天室的步骤解析
    php混淆加密解密实战
    关于mysql集群主从服务器搭建
    mysql binlog恢复数据实战
  • 原文地址:https://www.cnblogs.com/icysnow/p/8268882.html
Copyright © 2020-2023  润新知