1- 思路
二分
- 二分左区间的三种情况。
- 由于目标值不一定在数组中,因此二分的过程中有三种情况判断
2- 实现
⭐35. 搜索插入位置——题解思路

class Solution {public int searchInsert(int[] nums, int target) {int left = 0;int right = nums.length-1;while(left<=right){int mid = left + (right-left)/2;if(nums[mid]<target){left = mid+1;}else if(nums[mid] > target){right = mid-1;}else{return mid;}}return left;}
}
3- ACM 实现
public class searchIndex {public static int search(int[] nums,int target){int left = 0;int right = nums.length-1;while(left<=right){int mid = (left+right)/2;if(nums[mid]<target){left = mid+1;}else if(nums[mid] > target){right = mid-1;}else{return mid;}}return left;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();input = input.substring(1,input.length()-1);String[] parts = input.split(",");int[] nums = new int[parts.length];for(int i = 0 ; i < parts.length;i++){nums[i] = Integer.parseInt(parts[i]);}System.out.println("输入target值");int target = sc.nextInt();System.out.println("结果是"+search(nums,target));}
}