Arrays类的binarySearch()方法理解
binarySearch(Object[] a, Object key)
a: 要搜索的数组
key:要搜索的值
- 如果key在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。
- 插入点,是索引键,将要插入数组的那一点,即第一个大于该键的元素的索引。
技巧:
- 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;
- 搜索值是数组元素,从0开始计数,得搜索值的索引值;
- 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);
- 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。
binarySearch(Object[] a, int fromIndex, int toIndex, Object key)
- a:要搜索的数组
- fromIndex:指定范围的开始处索引(包含)
- toIndex:指定范围的结束处索引(不包含)
- key:要搜索的值
如果要搜索的元素key在指定的范围内,则返回搜索值的索引;否则返回-1或“-”(插入点)。
技巧:
- 该搜索键在范围内,但不是数组元素,由1开始计数,得“ - 插入点索引值”;
- 该搜索键在范围内,且是数组元素,由0开始计数,
这篇博客详细介绍了Arrays类的binarySearch()方法,包括两种重载形式的使用,以及在解决LeetCode问题300. 最长递增子序列和面试题17.08. 马戏团人塔时如何利用二分法进行解题。同时提到了动态规划作为另一种解题方法。
最低0.47元/天 解锁文章
1528

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



