java寻找最大的字母_【LeetCode(Java) - 744】寻找比目标字母大的最小字母

本文详细介绍了LeetCode中的第744题,即寻找比目标字母大的最小字母。通过二分查找法解决此问题,解析解题思路并给出Java代码实现,同时提及Java基础概念如面向对象和设计模式。
摘要由CSDN通过智能技术生成

【LeetCode(Java) - 744】寻找比目标字母大的最小字母

【LeetCode(Java) - 744】寻找比目标字母大的最小字母

文章目录

1、题目描述

2、解题思路

3、解题代码

1、题目描述

29ec06150e0b77678a75cc76f49ee132.png

2、解题思路

??由于字符列表有序,且找出比目标字母大的最小字母,很明显采用二分查找。

??区间呈左开右闭形式。

??当中间字符小于等于目标字符,则更新左边界为 mid + 1;

??当中间字符大于目标字符时,可能它就是比目标字母大的最小字母,更新右边界为 mid;

??当结束 while 循环时,left == right,此时 left 就是比目标字母大的最小字母的索引,因为字母是循环出现的,需要和字符列表取模。

3、解题代码

class Solution {

public char nextGreatestLetter(char[] letters, char target) {

int left = 0, right = letters.length;

while (left < right) {

int mid = left + (right - left) / 2;

if (letters[mid] <= target) {

left = mid + 1;

} else {

right = mid;

}

}

return letters[left % letters.length];

}

}

【LeetCode(Java) - 744】寻找比目标字母大的最小字母相关教程

JAVA基础 面向对象(四) 代码块 static 抽象类 内部类

JAVA基础 面向对象(四) 代码块 static 抽象类 内部类 一、static 关键字引入 static关键字声明的属性和方法是类自己的,所有类实例化的对象,都共享这些static属性和方法。 static可用于修饰:属性、方法、代码块、内部类 1.1 static修饰属性 static修饰后

【JAVA】字母菱形

【JAVA】字母菱形 输入描述 输入一个大写字母与一个整数n,1=n=26; 输出描述 输出如下高度为2n-1的菱形; 注意:A的下一个字母是B,Z的下一个字母是A 样例输入 R 12 样例输出 思路 图形由字母和空格组成,而且是由上下两个三角形构成,用一个数组存放字母,用

leetcode-35 搜索插入位置

leetcode-35 搜索插入位置 刚拿到题目的时候,分成两步做的。 第一步:如果target存在于我们的容器中,我就返回位置,本来想用find()函数去处理的。 但是有一点问题,这里刚好去复习一下: string中的find(),如果查找到,那么返回的是查找字符串的首地址值。

Java设计模式(四):建造者模式(生成器模式)

Java设计模式(四):建造者模式(生成器模式) 模式动机 在现实生活中存在一些复杂的产品,如汽车,它有方向盘、轮胎、发动机灯组件构造而成,但是用户无需知道各个组件的生产过程与具体的构造过程,只需要最后得到一个汽车即可。 在软件设计中,也有一些复

Java十大算法(一)——非递归二分查找

Java十大算法(一)——非递归二分查找 在前面的文章中我们写过一篇关于二分查找的递归实现(https://blog.csdn.net/lmlzww/article/details/107029360)那么除过递归的实现方式还用一种实现便是我们的非递归实现,非递归二分查找算法的实现主要是通过在方法

Dbutil使用

Dbutil使用 Dbutil 的使用小结 Java与数据库的连接包括:导包、注册驱动、获取与数据库的连接对象、获取SQL语句的执行者对象、获取结果集对象、关闭连接等。其中连接池包含了注册驱动和获取与数据库连接两个步骤,而dbutils简化了其他步骤。 DBUtils封装了JDB

Java常见的十大算法(二)——分治算法之汉诺塔

Java常见的十大算法(二)——分治算法之汉诺塔 分治算法指的是将我们需要解决的问题分而解之,将大的问题分解成小的问题,算法最后的结果就是最后的那个小问题的解,分治算法中的小问题之间往往是可以独立的,不是相互依赖的。常见的诸多高效算法中都运用了

4年Java程序员月薪不过3万就不要拿命换钱了

4年Java程序员:月薪不过3万,就不要拿命换钱了! TIOBE 公布 2020 年 9 月的编程语言排行榜:Java占有率继续下降,从上个月的14.43%降到13.48%,同比下降3.18%。 在Java的学习群里,问到大家工作3-5年的瓶颈,回答基本大同小异: 工作 内容重复 ,业务量到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值