// 二分publicintsearchInsert(int[] nums,int target){// base case if(nums.length ==0)return0;int left =0;int right = nums.length -1;// 中轴int mid =0;// 遍历数组,while(left < right){// >>1 == ÷2
mid = left +(right - left)>>1;// 找到if(nums[mid]== target)return mid;// 没找到elseif(nums[mid]< target){
left = mid +1;}elseif(nums[mid]> target){
right = mid;}}// 不在数组中,return nums[left]< target ? left +1: left;}
// 暴力publicintsearchInsert(int[] nums,int target){// base case if(nums.length ==0)return0;for(int i =0; i < nums.length; i++){if(nums[i]>= target)return i;}return nums.length;}
1. 题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 12. Java代码 // 二分 public int searchInsert(int[] nums, int target) { // base case if (