题目标签:Binary Search

  题目给了我们一组字母,让我们找出比 target 大的最小的那个字母。

  利用 binary search,如果mid 比 target 小,或者等于,那么移到右半边;

  如果 mid 比target 大,那么移到左半边,这里要包括mid,因为mid 可能是那个要找的字母。

  这里还要检查一个可能,如果 target 是 z, 那么 最小的那个字母,就是 比z 大的字母。

  来覆盖这个可能性,可以用 target 比 array 里最后那个字母, 如果target大的话, 那么返回 第一个字母。

Java Solution:

Runtime:  0 ms, faster than 100 %

Memory Usage: 39 MB, less than 85 %

完成日期:08/01/2019

关键点:用 target 比 letters[n-1] 来包括 “letters also wrap around”

class Solution {
public char nextGreatestLetter(char[] letters, char target) { int n = letters.length; if(target >= letters[n - 1])
return letters[0]; int left = 0;
int right = n - 1; while(left < right) {
int mid = left + (right - left) / 2; if(letters[mid] <= target)
left = mid + 1;
else if(letters[mid] > target)
right = mid;
} return letters[right];
}
}

参考资料:LeetCode Discuss

LeetCode 题目列表 - LeetCode Questions List

题目来源:https://leetcode.com/

LeetCode 744. Find Smallest Letter Greater Than Target (寻找比目标字母大的最小字母)的更多相关文章

  1. Leetcode744.Find Smallest Letter Greater Than Target寻找比目标字母大的最小字母

    给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母. 数组里字母的顺序是循环的.举个例子,如果目标字母target = 'z' 并且有 ...

  2. LeetCode 744. Find Smallest Letter Greater Than Target (时间复杂度O(n))

    题目 太简单了,直接上代码: class Solution { public: char nextGreatestLetter(vector<char>& letters, cha ...

  3. 744. Find Smallest Letter Greater Than Target 查找比目标字母大的最小字母

    [抄题]: Given a list of sorted characters letters containing only lowercase letters, and given a targe ...

  4. 【Leetcode_easy】744. Find Smallest Letter Greater Than Target

    problem 744. Find Smallest Letter Greater Than Target 题意:一堆有序的字母,然后又给了一个target字母,让求字母数组中第一个大于target的 ...

  5. 【LeetCode】744. Find Smallest Letter Greater Than Target 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 线性扫描 二分查找 日期 题目地址:https:// ...

  6. [LeetCode&Python] Problem 744. Find Smallest Letter Greater Than Target

    Given a list of sorted characters letters containing only lowercase letters, and given a target lett ...

  7. Python 解LeetCode:744. Find Smallest Letter Greater Than Target

    思路:二分法,时间复杂度o(logn) class Solution(object): def nextGreatestLetter(self, letters, target): "&qu ...

  8. [LeetCode] 744. Find Smallest Letter Greater Than Target_Easy tag: **Binary Search

    Given a list of sorted characters letters containing only lowercase letters, and given a target lett ...

  9. 744. Find Smallest Letter Greater Than Target

    俩方法都是用二分查找,一个调库,一个自己写而已. 方法一,调库 static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NUL ...

随机推荐

  1. Minimum Snap轨迹规划详解(3)闭式求解

    如果QP问题只有等式约束没有不等式约束,那么是可以闭式求解(close form)的.闭式求解效率要快很多,而且只需要用到矩阵运算,不需要QPsolver. 这里介绍Nicholas Roy文章中闭式 ...

  2. delphi 多线程编程

    开始本应该是一篇洋洋洒洒的文字, 不过我还是提倡先做起来, 在尝试中去理解.先试试这个: procedure TForm1.Button1Click(Sender: TObject); var i: ...

  3. docker哪些平台技术(3)

    容器平台技术 容器核心技术使得容器能够在单个 host 上运行.而容器平台技术能够让容器作为集群在分布式环境中运行. 容器平台技术包括容器编排引擎.容器管理平台和基于容器的 PaaS. 容器编排引擎 ...

  4. apk签名原理及实现

    发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的.签名机制在Android应用和框架中有着十分重要的作用. 例如,Android系统禁止更新安装签名不一致的APK: ...

  5. OS: 生产者消费者问题(二) ---- 系统V IPC通信-信号量和共享内存

    在上一篇“OS: 生产者消费者问题(多进程+共享内存+信号量)”中提到的方法二: 如果进程之间并没有父子关系,但是协商好了共享存储的 KEY , 那么在每个进程中,就可以通过 KEY 以及 shmge ...

  6. C语言中的数据类型转换函数

    头文件#include<stdlib.h> 1. 函数名: atof 功 能: 把字符串转换成浮点数 用 法: double atof(const char *nptr); 2.函数名: ...

  7. IDM自定义报错页面

    由于用户两次重复单点登录会跳转至原生态ORACLE的错误页面页面.请提供配置方法.原因:是由于重复登录导致的.解决方案:Oracle官方给出了具体的解决方案,具体如下:I.创建战争档案a.创建目录&q ...

  8. Android逆向之smali语法宝典

    0x01.前言 Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali.我们反编译得到的代码,j ...

  9. HDU 6685 Rikka with Coin (枚举 思维)

    2019 杭电多校 9 1006 题目链接:HDU 6685 比赛链接:2019 Multi-University Training Contest 9 Problem Description Rik ...

  10. 剑指offer——60二叉树的深度

    题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度.   题解: 简单的深度遍历即可.   class Solution ...