厦门做企业网站找谁,百度交易平台,广州专业展台制作价格,石家庄建设局网站怎么打不开题目#xff1a;
给你一个字符数组 letters#xff0c;该数组按非递减顺序排序#xff0c;以及一个字符 target。letters 里至少有两个不同的字符。
返回 letters 中大于 target 的最小的字符。如果不存在这样的字符返回 letters 的第一个字符。
思路#xff1a;灵神 闭…题目
给你一个字符数组 letters该数组按非递减顺序排序以及一个字符 target。letters 里至少有两个不同的字符。
返回 letters 中大于 target 的最小的字符。如果不存在这样的字符返回 letters 的第一个字符。
思路灵神 闭区间写法 转化‘b’ (char) (a 1) 字符可以直接比较大小
代码
class Solution {public char nextGreatestLetter(char[] letters, char target) {int start lowerBound(letters, (char) (target 1));if (start letters.length) {return letters[start];} else {return letters[0];}}private int lowerBound(char[] letters, char target) {int left 0, right letters.length - 1;while (left right) {int mid left (right - left) / 2;if (letters[mid] target) {left mid 1;} else {right mid - 1;}}return left;}
}
性能
时间复杂度ologn
空间复杂度o1