0
点赞
收藏
分享

微信扫一扫

寻找比目字母大的最小字母

胡桑_b06e 2022-04-03 阅读 29
java算法

寻找比目字母大的最小字母:

给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。

在比较时,字母是依序循环出现的。举个例子:

如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’

示例:

//直接利用差值进行判断
public class NextGreatestLetter {
    public static char nextGreatestLetter(char[] letters, char target) {
        int n = letters.length;
        int tar = 26;
        int j = 0;
        char res = letters[0];
        for (int i = 0; i < n; i++) {
            if (target>letters[i]){
                continue;
            }
            int c = Math.abs( target - letters[i]);
            if (c != 0  && tar > c){
                if (j == 0 || letters[i]<=j){
                    tar = c;
                    j = letters[i];
                    res= letters[i];
                }

            }
        }
        return res;

    }

    public static void main(String[] args) {
        char[] letters = {'c','f','j'};
        char target = 'd';
        System.out.println(nextGreatestLetter(letters,target));
    }
}
举报

相关推荐

0 条评论