LeetCode 题解(38): Search Insert Position

题目:

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

题解:

二分查找,找到的话就返回当前index,没找到的话返回low。

class Solution {
public:
    int searchInsert(int A[], int n, int target) {
        int result;
        result = binarySearch(A, 0, n-1, target);
        return result;
    }
    
    int binarySearch(int A[], int low, int high, int target)
    {
        if(low > high)
            return low;
        
        int mid = (low + high) / 2;
        if(A[mid] == target)
            return mid;
        else if(A[mid] < target)
            return binarySearch(A, mid+1, high, target);
        else
            return binarySearch(A, low, mid-1, target);
    }
};


你可能感兴趣的:(Algorithm,LeetCode,search,insert,Positi)