领扣LintCode算法问题答案-1056. 请找出大于目标的最小字母
发布日期:2021-06-30 17:09:42 浏览次数:3 分类:技术文章

本文共 1388 字,大约阅读时间需要 4 分钟。

领扣LintCode算法问题答案-1056. 请找出大于目标的最小字母

目录

1056. 请找出大于目标的最小字母

描述

给定一串只含有小写形式的、排序过的 letters,并且给定一个目标字母 target ,请找出在给定字母串中,大于目标字母的最小的那一个字母。

在本题中,字母是绕回编址的(即“z”后一位重新变为“a”)。比如说,如果target = ‘z’,而给定字母串为letters = [‘a’, ‘b’],那么答案为“a”。

  1. letters 长度范围为 [2, 10000].
  2. letters 只含有小写字母,并且其中至少含有两个互不相同的字母。
  3. target 也是一个小写字母。

样例 1:

输入:letters = ["c", "f", "j"]target = "a"输出: "c"

样例 2:

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

样例 3:

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

样例 4:

输入:letters = ["c", "f", "j"]target = "g"输出: "j"

样例 5:

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

样例 6:

输入:letters = ["c", "f", "j"]target = "k"输出: "c"

题解

public class Solution {
/** * @param letters: a list of sorted characters * @param target: a target letter * @return: the smallest element in the list that is larger than the given target */ public char nextGreatestLetter(char[] letters, char target) {
// Write your code here char searchChar; if (target == 'z') {
searchChar = 'a'; } else {
searchChar = (char) (target + 1); } int index = Arrays.binarySearch(letters, searchChar); if (index < 0) {
index = -index; index--; } return index >= letters.length ? letters[0] : letters[index]; }}

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。

欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

转载地址:https://le-yi.blog.csdn.net/article/details/108809061 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:领扣LintCode算法问题答案-1062. 洪水填充
下一篇:领扣LintCode算法问题答案-1054. 最少费用的爬台阶方法

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年05月01日 22时10分24秒