给你一个排序后的字符列表 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" 输入: letters = ["c", "f", "j"] target = "g" 输出: "j" 输入: letters = ["c", "f", "j"] target = "j" 输出: "c" 输入: letters = ["c", "f", "j"] target = "k" 输出: "c"
提示:
letters长度范围在[2, 10000]区间内。letters仅由小写字母组成,最少包含两个不同的字母。- 目标字母
target是一个小写字母。
package Solution744;
class Solution {
public char nextGreatestLetter(char[] letters, char target) {
if (letters.length == 0) {
return '0';
}
if (target >= letters[letters.length - 1]) {
return letters[0];
}
for (int i = 0; i < letters.length; i++) {
if (letters[i] > target) {
return letters[i];
}
}
return '0';
}
public static void main(String[] args) {
Solution sol = new Solution();
char[] letters = { 'c', 'f', 'j' };
char target = 'g';
System.out.println(sol.nextGreatestLetter(letters, target));
}
}
寻找比目标字母大的最小字母
本文介绍了一种算法,该算法在一个已排序的小写字母列表中找到比给定目标字母大的最小字母。通过示例展示了如何处理各种情况,包括列表的循环特性。
273

被折叠的 条评论
为什么被折叠?



