美文网首页
35. Search Insert Position

35. Search Insert Position

作者: 西土城小羊 | 来源:发表于2017-03-13 10:14 被阅读12次

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0

读题

题目的意思就是给你一个有序的数组和一个数,找出这个数字在数组中的位置

思路

题目比较简单,可以遍历查找,也可以使用二分查找,遍历的话就是找到第一个大于等于target的数就返回,如果到了数组的末尾还没有找到,target就应该在数组的末尾

题解

public class Solution {
   public  int searchInsert(int[] nums, int target) {
        int index = 0 ;
        if(nums.length == 0) return 0;
        int i = 0;
        for(;i<nums.length;i++){
            if(nums[i] >= target){
                index = i;
                break;
            }
        }
        //if(nums[nums.length-1] < target) index = nums.length;
        if(i == nums.length) index = i;
        return index;
    }
}

或者使用二分的方式

 public int searchInsert(int[] A, int target) {
        int low = 0, high = A.length-1;
        while(low<=high){
            int mid = (low+high)/2;
            if(A[mid] == target) return mid;
            else if(A[mid] > target) high = mid-1;
            else low = mid+1;
        }
        return low;
    }

相关文章

网友评论

      本文标题:35. Search Insert Position

      本文链接:https://www.haomeiwen.com/subject/fgrfnttx.html