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];
}
}
上一篇: 如何使用整数编程解决 NP-完全问题
下一篇: 组合优化案例研究:解决复杂问题的方法