ScrollView GraphQL 学生排队 Opencv Spring Cloud 存量客户 docker安装 ssl mtu原理 Way.js vue框架 后台网站模板 pmp培训视频 angularjs教程 android项目开发 excel动态图表制作 mysql查看锁表 js回调函数写法 hadoop创建文件夹 当前时间减一天 matlab不等于 java解析pdf 完美解决cpu利用率低 python中的def python配置环境 python入门例子 python环境变量配置 python编程工具 python写入文件 python传递参数 python建站 java包 java环境配置 java8时间 java文件重命名 java如何使用 java连接mysql的jar包 redis入门指南 stl2stp 图解深度学习
当前位置: 首页 > 学习教程  > 编程语言

[C++]Leetcode744.寻找比目标字母大的最小字母

2020/10/8 20:31:28 文章标签:

744.寻找比目标字母大的最小字母 题目:给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。 在比较时,字母是依序循环出现的。举个例子…

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

题目:给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。

在比较时,字母是依序循环出现的。举个例子:
如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’

示例:
输入: letters = [“c”,“f”, “j”] target = “a”
输出: “c”

输入:
letters = [“c”,“f”, “j”] target = “c”
输出: “f”

输入:
letters = [“c”,“f”, “j”] target = “d”
输出: “f”

class Solution {
public:
    char nextGreatestLetter(vector<char>& letters, char target) {
        int left = 0;
        int right = letters.size() - 1;
        if(target >= letters[right] || target < letters[left]) return letters[left];
        //left + 1 < right 使得right指针最终指向目标值的右边一个数
        //即比目标值大的第一个数
        while(left + 1 < right)
        {
            int mid = (left + right) / 2;
            if(letters[mid] > target) right = mid;
            else left = mid;
        }
        return letters[right];
    }
};

[[C++]Leetcode超高效刷题顺序及题目详解笔记(持续更新中)]


本文链接: http://www.dtmao.cc/news_show_250332.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?