1. 程式人生 > >leetcode刷題之35搜尋插入位置

leetcode刷題之35搜尋插入位置

這道題跟704二分查詢異曲同工之妙,不同點在於這道題需要返回插入陣列的位置,因此只需要將704二分查早的返回值改寫一下即可。

class Solution {
    public int searchInsert(int[] nums, int target) {

        int low = 0;
        int high = nums.length-1;

        while(low<=high){
            int middle = low+(high-low)/2;
            if(target>nums[middle]){
                low=
middle+1; }else if (target<nums[middle]){ high=middle-1; }else{ return middle; } } return low; } }

巧妙的是採用二分查詢,若目標不在陣列內,low>high跳出迴圈,此時nums[high]<目標<nums[low], 因此目標在陣列內的位置就是low。