思路及疑惑解析
package search;
import java.util.ArrayList;
import java.util.List;
/**
*课后思考题: int arr[] = {1, 3, 5, 7, 9,9,9}; 当一个有序数组中,
*有多个相同的数值时,如何将所有的数值都查找到,比如这里的 9
*
*
* 思路分析
* 前提 二叉搜素之前数组是排序好的,即多个相同数据的下标是连续的
* 刚才描述的错误 比如查询单个 查询9 索引下标为5
* 查询多个 查询9 索引下标为4,5,6
* 1. 在找到mid 索引值(其实这个索引就是第一个符合条件的值,不必再往左边扫描,直接向右边扫描就行),不要马上返回
* (不可以省略)2. 向mid 索引值的左边扫描,将所有满足 9, 的元素的下标,加入到集合ArrayList
* 3. 向mid 索引值的右边扫描,将所有满足 9 的元素的下标,加入到集合ArrayList
*