天天看点

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;
        }
    }
}
           

继续阅读