LeetCode-35. Search Insert Position

来源:互联网 发布:licecap for mac 编辑:程序博客网 时间:2024/05/29 16:54

问题:https://leetcode.com/problems/search-insert-position/?tab=Description
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.
给一个有序的数组,如果target在数组中,返回它的位置。如果不在,返回它应该在的位置。
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
分析:二分查找。每次取中间值。如果大于目标值,减小right。如果小于目标值,增加left。如果等于目标则返回。如果一直没有等于目标值的,那么left会等于right。返回left即可。
C++代码:

class Solution {public:    int searchInsert(vector<int>& nums, int target) {        int left=0;        int right=nums.size()-1;        while(left<=right){            int mid=(left+right)/2;            if(nums[mid]>target) right=mid-1;            else if(nums[mid]<target) left=mid+1;            else return mid;        }        return left;    }};
0 0