leetcode-二分搜索:Search Insert Position

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

代码如下:

/************************************************************************* > File Name: bisearch.cpp > Author: ma6174 > Mail: [email protected] > 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;
//35
int 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;
}

你可能感兴趣的:(LeetCode)