笔试题48. LeetCode OJ (35)
2016-05-06 14:00
281 查看
这个题目还是属于查找类的题目,和前面的题目比较类似,题目的要求是给定一个target,在有序数组里面查找该元素的插入顺序,若存在了则返回该元素的下标。这道题比较直观,所以比较容易动手,需要注意到的应该就是边界条件的问题吧,比如说:
(1). 目标元素比排序数组中的最小元素还小
(2). 目标元素比排序数组中的最大元素还大
请看代码吧,代码写的还是比较清晰的
class Solution { public: int searchInsert(vector<int>& nums, int target) { int len = nums.size(); if (len == 0) { return 0; } int left = 0; int right = len - 1; int mid = 0; if (target > nums[right]) { return right + 1; } while (left < right) { mid = left + (right - left) / 2; if (nums[left] == target) { return left; } if (nums[right] == target) { return right; } if (nums[mid] == target) { return mid; } if (nums[mid] > target) { right = mid; } else { left = mid + 1; } } return left; } };
相关文章推荐
- 开源.net 混淆器ConfuserEx介绍
- iOS滑动解锁、滑动获取验证码效果的实现代码
- linux项目用Makefile编写
- Androd调试
- PHP自学no00010特殊数据类型之空值
- CF670C Cinema
- HTML简介
- mysql建表属性不能为关键字
- NYOJ 715 Adjacent Bit Counts
- 对改善ABP的一些建议
- 百度地图创建标记点
- v$sql,v$sqlarea,v$sqltext有什么区别
- XMG 抽屉效果
- Kd-Tree算法原理和开源实现代码
- ubuntu的配置
- 左右最值最大差
- codeforces 350 div2 D Magic Powder - 2 二分
- NSTimer运行机制和线程问题
- Volley直接设置POST包体
- Android ListView封装类