计蒜客 难题题库 010 寻找插入位置
2015-08-09 21:42
183 查看
5270次
尝试次数
19.7%
1000ms
65536K
给定一个已经升序排好序的数组,以及一个数target,如果target在数组中,返回它在数组中的位置。
否则,返回target插入数组后它应该在的位置。
假设数组中没有重复的数。以下是简单的示例:
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
提示:输入一个整数n,以及其对应的数组A
,最后输入target
searchInsert(int A[], int n, int target)
输出:
尝试次数
19.7%
1000ms
65536K
给定一个已经升序排好序的数组,以及一个数target,如果target在数组中,返回它在数组中的位置。
否则,返回target插入数组后它应该在的位置。
假设数组中没有重复的数。以下是简单的示例:
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
提示:输入一个整数n,以及其对应的数组A
,最后输入target
searchInsert(int A[], int n, int target)
样例1
输入:3 1 3 5 2
输出:
1
#include<iostream> using namespace std; // const int maxn = 10000001; // int a[maxn]; int main(){ int n; cin >> n; int *a = new int (); for(int i = 0; i < n; ++i){ cin >> a[i]; } int target; cin >> target; int left = 0, right = n - 1; int mid; while(left < right){ mid = (left + right) >> 1; if(a[mid] < target){ left = mid + 1; }else{ right = mid; } } if(a[left] >= target){ cout << left << endl; }else{ cout << left + 1 << endl; } }
相关文章推荐
- mysql常用语句
- 零长度数组的妙用
- apache服务器安装以及使用passenger插件部署rails应用
- 排序
- 可变数组学习整理
- 计蒜客 难题题库 009 元素移除
- hive集合统计函数
- 第一章 工欲善其事 其利润—Android SDK工具(2)
- 【摘要干】如何执飞前写商业计划?
- jQuery工具函数
- POJ 2828-Buy Tickets(线段树)
- PHP 用QueryList抓取网页内容
- 58 最少步数【bfs】
- 剑指Offer面试题37(Java版):两个链表的第一个公共结点
- Android应用程序打包时,出现错误:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....
- 计蒜客 难题题库 008 字符串长度
- 拉姆斯菲尔德规则读书笔记
- 015 HUAS Summer Contest#3~A
- (medium)LeetCode 210.Course Schedule II
- linux下的cd 切换工作目录