欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

leetcode744-查找大于目标的最小字母-分析

最编程 2024-04-20 11:29:18
...

一旦看到要在排序数组里寻找某个元素一定要想到二分的思路,不同的是这道题目要找第一个比指定元素大的值,核心流程不变,只不过在二分的过程中判断是否比指定元素大的最小字符的时候可以多加一个条件判断即可

public class findSmallestLetterGreaterThanTarget {
	public static void main(String[] args) {
		char[] arr = {'c','f','j'};
		System.out.println(finrBig(arr,'c'));
	}
	public static char finrBig(char[] arr,char target) {
		int start = 0;
		int end = arr.length - 1;
		while(start <= end) {
			int mid = (start + end) / 2;
			if(arr[mid] > target && mid - 1 >= 0 && arr[mid-1] <= target) {
				return arr[mid];
			} else if(arr[mid] <= target) {
				start = mid + 1;
			} else {
				end = mid - 1;
			}
		}
		return arr[0];
	}
}