Leetcode刷题之旅(每日一题)--35. 搜索插入位置

题目描述:
Leetcode刷题之旅(每日一题)--35. 搜索插入位置_第1张图片
思路:首先可以用暴力法:

class Solution {
     
    public int searchInsert(int[] nums, int target) {
     
        int result=nums.length;
        for(int i=0;i<nums.length;i++){
     
            if(target==nums[i]||target<nums[i]){
     
                result=i;
                break;
            }
        }
        return result;
    }
}

Leetcode刷题之旅(每日一题)--35. 搜索插入位置_第2张图片
但是这并没有用到原始数组已排序的特点,因此可以使用二分查找来进行优化:

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

你可能感兴趣的:(leetcode,算法)