[LeetCode] Search Insert Position [21]

題目

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

原題鏈接(點我)

解題思路

給一個排序數組和一個數,尋找該數在數組的位置或者插入位置。本題考查對二分查找的理解和二分查找樹。二分查找查找失敗的位置就是該數在數組中該插入的位置。

代碼實現

class Solution {
public:
    int searchInsert(int A[], int n, int target) {
        if(A==NULL || n<=0) return -1;
        int begin=0, end=n-1;
        while(begin<=end){
            int mid = (begin+end)/2;
            if(A[mid] == target) return mid;
            if(A[mid] > target) 
                end = mid-1;
            else
                begin = mid+1;
        }
        return begin;
    }
};

如果你覺得本篇對你有收穫,請幫頂。
另外,我開通了微信公衆號--分享技術之美,我會不定期的分享一些我學習的東西.
你可以搜索公衆號:swalge 或者掃描下方二維碼關注我

(轉載文章請註明出處: http://blog.csdn.net/swagle/article/details/29371109 )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章