[LeetCode35]Search Insert Position
2015-11-09 15:44
465 查看
题目来源:https://leetcode.com/problems/search-insert-position/
点击打开链接
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.
分析:
这题要求在一个排好序的数组查找某值value, 如果存在则返回对应index, 不存在则返回能插入到数组中的
index( 保证数组有序) 。
对于不存在的情况, 我们只需要在数组里面找到最小的一个值大于value的index, 这个index就是我们可以
插入的位置。 譬如[1, 3, 5, 6], 查找2, 我们知道3是最小的一个大于2的数值, 而3的index为1, 所以我们需
要在1这个位置插入2。 如果数组里面没有值大于value, 则插入到数组末尾。
class Solution35{
public:
int searchInsert(vector<int>& nums, int target){
int left = 0;
int right = nums.size() - 1;
while (left <= right){
int mid = left + (right-left) / 2;
if (target == nums[mid]){
return mid;
}
else if (target < nums[mid]){
right = mid - 1;
}
else{
left = mid + 1;
}
}
return left;
}
};
int main()
{
Solution35 solution;
{
vector<int> v = { 1, 3, 5, 6 };
int target = 5;
cout << solution.searchInsert(v, target);
}
getchar();
return 0;
}
点击打开链接
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
分析:
这题要求在一个排好序的数组查找某值value, 如果存在则返回对应index, 不存在则返回能插入到数组中的
index( 保证数组有序) 。
对于不存在的情况, 我们只需要在数组里面找到最小的一个值大于value的index, 这个index就是我们可以
插入的位置。 譬如[1, 3, 5, 6], 查找2, 我们知道3是最小的一个大于2的数值, 而3的index为1, 所以我们需
要在1这个位置插入2。 如果数组里面没有值大于value, 则插入到数组末尾。
class Solution35{
public:
int searchInsert(vector<int>& nums, int target){
int left = 0;
int right = nums.size() - 1;
while (left <= right){
int mid = left + (right-left) / 2;
if (target == nums[mid]){
return mid;
}
else if (target < nums[mid]){
right = mid - 1;
}
else{
left = mid + 1;
}
}
return left;
}
};
int main()
{
Solution35 solution;
{
vector<int> v = { 1, 3, 5, 6 };
int target = 5;
cout << solution.searchInsert(v, target);
}
getchar();
return 0;
}
相关文章推荐
- linux下的find文件查找命令与grep文件内容查找命令
- 被误解的 MVC 和被神化的 MVVM
- remove adapter
- 全面理解面向对象的 JavaScript
- SqlServer存储过程(带参数)
- 修改窗体颜色,是的eclipse的背景色改变,保护开发者视力
- 《DOOM启世录(纪念版) 》此书出了纪念版,好像内容没变
- Eclipse快捷键10个最有用的快捷键
- URLConnection的连接、超时、关闭用法总结(转载)
- laravel5.0学习系列1之 路由
- OCP-1Z0-051-2015-37题
- git 相关
- RWP 2015 视频
- Android 关于启动过程的一些文章
- 深入浅出MIPS 三 MIPS的协处理器CP0 (Section 1)
- Android Fragment 真正的完全解析(上)
- sql 函数 总结
- LightOJ 1138 Trailing Zeroes (III)(二分 + 思维)
- Nginx使用naxsi防xss、防注入攻击配置
- 原来WPF默认处理了这么多Exception,见识了