leetcode--Search Insert Position

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0


题意:给定一个排序的数组,和一个目标数,返回目标数所在的index,如果没有,找出目标数应该插入的位置

分类:数组,二分查找


解法1:遍历查找

public class Solution {
    public int searchInsert(int[] nums, int target) {
        int res = -1;
        for(int i=0;i<nums.length;i++){
            if(nums[i]>=target) return i;
        }
        return nums.length;
    }
}

解法2:二分查找

public class Solution {
    public int searchInsert(int[] nums, int target) {
        int low = 0;
    	int high = nums.length-1;
    	int mid = 0;          
        while(low<=high){  
            mid = (low+high)/2;  
            if(nums[mid]==target) break;  
            else if(nums[mid]>target) high = mid-1;  
            else low = mid+1;  
        }         
        if(nums[mid]==target){
        	return mid;
        }else if(nums[mid]<target){
        	return mid+1;
        }else{
        	return mid;
        }
    }
}

你可能感兴趣的:(leetcode--Search Insert Position)