码迷,mamicode.com
首页 > 其他好文 > 详细

35 Search Insert Position(找到数的位置Medium)

时间:2015-06-14 12:22:42      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

题目意思:在递增数组中找到目标数的位置,如果目标数不在数组中,返回其应该在的位置。

思路:折半查找,和相邻数比较,注意边界

 1 class Solution {
 2 public:
 3     int searchInsert(vector<int>& nums, int target) {
 4         int start=0,end=nums.size()-1;
 5         int flag=0;
 6         while(start<=end){
 7             flag=(start+end)/2;
 8             if(nums[flag]==target)return flag;
 9             else if(nums[flag]<target){
10                 if(flag==nums.size()-1||nums[flag+1]>=target)return flag+1;  //和相邻数比较
11                 else start=flag+1;
12             }
13             else{
14                 if(flag==0||nums[flag-1]<target)return flag;
15                 else end=flag-1;
16             }
17         }
18     }
19 };

 

35 Search Insert Position(找到数的位置Medium)

标签:

原文地址:http://www.cnblogs.com/smallby/p/4574873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!