leetcode-二分搜索:Search Insert Position

来源:互联网 发布:上海运管处网络平台 编辑:程序博客网 时间:2024/05/16 00:28

题目描述:给定一个已经排序的数组和一个目标值,如果数组中存在这个目标值,则返回目标值所在的数组索引,如果不存在则返回目标值应该插入的数组位置,以使插入后的数组也是有序的。

代码如下:

/*************************************************************************    > File Name: bisearch.cpp    > Author: ma6174    > Mail: ma6174@163.com     > Created Time: 2015年07月13日 星期一 10时47分30秒 ************************************************************************/#include<iostream>#include<math.h>#include<stdlib.h>#include<stdio.h>#include<vector>#include<string>using namespace std;//35int searchInsert(vector<int>& nums, int tar){    int i = 0;    int j = (int)nums.size() - 1;    while(i <= j)    {        int mid = (i + j) / 2;        if(nums[mid] < tar)            i = mid + 1;        else if(nums[mid] > tar)            j = mid - 1;        else            return mid;    }    return i;}int main(int arvc, char** argv){    int in = atoi(argv[1]);    vector<int> r;    r.push_back(1); r.push_back(3); r.push_back(5); r.push_back(6);    int id = searchInsert(r, in);    printf("index = %d\n", id);    return 0;}
0 0