手写代码:二分查找的代码
private ArrayList<Integer> binarySearch(int []nums, int left, int right, int value) { if(left > right) { return new ArrayList<Integet>(); } int mid = (left+right)/2; int midValue = nums[mid]; if(value > midValue) { return binarySearch(nums, mid+1, right, value); } else (value < minValue) { return binarySearch(nums, left, mind-1, value); } else { ArrayList<Integet> retList = new ArrayList<Integer>(); int temp = mid - 1; while(true) { if(temp<0 || value != nums[temp]) { break; } retList.add(temp); temp--; } retList.add(mid); temp = mid + 1; while(true) { if (temp>nums.length-1 || value != nums[temp]) { break; } retList.add(temp); temp++; } return retList; } }