天天看點

LeetCode35. 搜尋插入位置(java)

題目:

給定一個排序數組和一個目标值,在數組中找到目标值,并傳回其索引。如果目标值不存在于數組中,傳回它将會被按順序插入的位置。

你可以假設數組中無重複元素。

示例:

LeetCode35. 搜尋插入位置(java)

代碼:

  • 解法一
class Solution {
    public int searchInsert(int[] nums, int target) {
        int index=-1;
        if(nums[nums.length-1]<target){
            return(nums.length);
        }
        for(int i=0;i<nums.length;i++){
            if(nums[i]==target){
                return(i);
            }else if(nums[i]>target){
                return(i);
            }
        }
        return(index);
    }
}
           
  • 别人的代碼
class Solution {
    public int searchInsert(int[] nums, int target) {
        int begin = 0, end = nums.length - 1, mid = 0;
        while (begin <= end) {
            mid = (begin + end) >>> 1;
            if (nums[mid] < target) {
                begin = mid + 1;
            }else if(nums[mid] > target){
                end = mid - 1;
            }else{
                return mid;
            }
        }if (begin == 0 || begin == nums.length) {
            return begin;
        }else {
            return ((begin + end) >>> 1) + 1;
        }
    }
}
           

繼續閱讀