Arrays类的binarySearch()方法在leetcode题中经典运用

Arrays类的binarySearch()方法理解

binarySearch(Object[] a, Object key)
  

a: 要搜索的数组
key:要搜索的值

  1. 如果key在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。
  2. 插入点,是索引键,将要插入数组的那一点,即第一个大于该键的元素的索引。

技巧:

  1. 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;
  2. 搜索值数组元素,从0开始计数,得搜索值的索引值;
  3. 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);
  4. 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。 

binarySearch(Object[] a, int fromIndex, int toIndex, Object key)

  1. a:要搜索的数组
  2. fromIndex:指定范围的开始处索引(包含)
  3. toIndex:指定范围的结束处索引(不包含)
  4. key:要搜索的值

如果要搜索的元素key在指定的范围内,则返回搜索值的索引;否则返回-1或“-”(插入点)
技巧:

  1. 该搜索键在范围内,但不是数组元素,由1开始计数,得“ - 插入点索引值”;
  2. 该搜索键在范围内,且是数组元素,由0开始计数&

你可能感兴趣的:(算法,Java,leetcode,算法,职场和发展)