N35

舊雨化碧發表於2020-10-30

給定一個排序陣列和一個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。

你可以假設陣列中無重複元素。

採用二分查詢法。

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

        return 0;

    }
}

在這裡插入圖片描述