首页 > 其他 > 详细

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

时间:2015-06-14 12:20:30      阅读:127      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!