【一天一道LeetCode】#35. Search Insert Position
2016-05-02 17:43
387 查看
一天一道LeetCode系列
(一)题目
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would >be if it were inserted in order.You may assume no duplicates in the array.
Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
(二)解题
/* 本题的思路是:如果目标数大于vector中的最大数,就返回vector的长度,即插在最后面 如果目标是小于vector中的最小数,就返回0,即插在最前面 如果在vector范围内,就用二分法查找,如果有等于target就返回其序号,如果没有即在i=j时退出,返回i表示target的插入位置 */ class Solution { public: int searchInsert(vector<int>& nums, int target) { int len = nums.size(); if(target > nums[len-1]) return len; if(target < nums[0]) return 0; int i = 0; int j = len-1; while(i<=j) { int mid = (i+j)/2; if(nums[mid] == target) return mid; else if(nums[mid]>target) j=mid-1; else i = mid+1; } return i; } };
相关文章推荐
- 设计模式C++学习笔记之五(Composite组合模式)
- Swing常用组件
- ajax小demo-----ajax中json的使用
- 1.调整数组使奇数全部都位于偶数前面。
- 设计模式C++学习笔记之四(Command命令模式)
- 数据结构之排序:直接选择排序
- 利用反函数求导定理求解四个反函数的导数_20160409
- nginx的高级数据结构
- Nodejs调试环境搭建
- Discuz!常用函数解析
- Android 开发常见异常分类
- [打字练习]Day Two
- php实现二路归并排序
- 使用sklearn做单机特征工程
- 程序之思考(1)
- POJ1466 Girls and Boys
- Codeforces Round #349 (Div. 2) A B C[dp] D[spfa] +vector
- 几何法证明一个重要极限_20160407
- hdu2196 Computer(树的直径||树中的最长路径)
- LINUX 数据结构 &算法 网络协议 & 网络编程 多任务编程