LeetCode Search Insert Position (二分查找)
2016-09-20 18:30
447 查看
题意
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
给定一个有序数组和一个目标值,查找出目标值在数组中出现的位置,如果没有出现,则返回它应该插入的位置。
解法
二分查找,记录mid值,查找结束后判断nums[mid] == target,如果相等的话就返回,不相等的话判断这个位置上的值是不是比target大,如果比它大那么target就直接插在mid这个位置,比target小的话就把target插入到下一个位置。
class Solution { public: int searchInsert(vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; int mid = 0; int index = 0; while(left <= right) { mid = (left + right) >> 1; if(nums[mid] == target) { index = mid; break; } else if(nums[mid] < target) left = mid + 1; else right = mid - 1; } if(nums[index] == target) return index; if(target > nums[mid]) return mid + 1; else return mid; } };
相关文章推荐
- 第四周 项目1-建立单链表
- Codeforces 627A XOR Equation
- Dagger2 最清晰的使用教程
- Spark与Hive的交互
- Kinect开发学习笔记之(一)Kinect介绍和应用
- iOS10推送通知适配
- SpringBoot配置文件application.properties
- vim小技巧--针对换行符进行操作
- PHP 基础知识总结一
- 第四周项目5-猴子选大王
- Eratosthenes筛法生成素数表
- 搭建自己的Tomcat服务器
- 雍慧A38t读取串口/dev/ttyS1没有权限
- October 大坑小坑
- 装饰者模式
- 将本地数据库里的表上传至服务器
- [最大费用可行流 || 单纯形] BZOJ 3118 Orz the MST
- Spring属性注入Bean的List属性
- PHP 编码规范
- 原型模式