LeetCode(35) Search Insert Position
来源:互联网 发布:淘宝互刷红包群 编辑:程序博客网 时间:2024/06/11 07:22
题目
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
分析
此题目与上一个题目类似都是源于二分查找的变形。
若序列中存在目标元素值,则直接返回其下标,若不存在则返回第一个大于它的元素的下标,只需要在二分搜索算法中稍微修改即可。
AC代码
class Solution {public: int searchInsert(vector<int>& nums, int target) { if (nums.size() == 0) return 0; else if (nums.size() == 1) { if (nums[0] >= target) return 0; else return 1; } else{ return BinarySearch(nums, target); } } int BinarySearch(vector<int> & nums, int target) { int left = 0, right = nums.size() - 1; while (left <= right) { int mid = (left + right) / 2; if (nums[mid] == target) return mid; else if (nums[mid] < target) { if (mid == right || nums[mid + 1] > target) return mid + 1; else left = mid + 1; } else{ if (mid == left || nums[mid - 1] < target) return mid; else right = mid - 1; } }//while return -1; }};
GitHub测试程序源码
0 0
- LeetCode(35) Search Insert Position
- [LeetCode-35] Search Insert Position(二分法)
- LeetCode (35)Search Insert Position
- leetcode 35: Search Insert Position
- Leetcode(35) Search Insert Position
- [leetcode 35] Search Insert Position
- [Leetcode] 35 - Search Insert Position
- LeetCode 35 Search Insert Position
- leetcode-35 Search Insert Position
- LeetCode 35 Search Insert Position
- Leetcode 35 Search Insert Position
- Leetcode[35]-Search Insert Position
- LeetCode 35:Search Insert Position
- leetcode-35-Search Insert Position
- leetcode 35 -- Search Insert Position
- leetcode[35]:Search Insert Position
- leetcode 35: Search Insert Position
- Leetcode#35 Search Insert Position
- 3.3 SELinux策略语言
- 浅析数据库中的触发器
- 如何阅读源代码
- Android采用ListView实现数据列表显示
- 系统默认只有一张内置的静态壁纸,如如何修改可以内置多张静态壁纸
- LeetCode(35) Search Insert Position
- Java 泛型
- Listview_OnItemClickListener失效的问题
- 如何通过ContentHub把内容从一个地方传到另外一个地方
- 虚拟键盘与fixed带给移动端的痛!
- HDOJ 5392 Infoplane in Tina Town LCM
- 无法保存打印机设置 0x000006d9
- 单词拆解&前缀树&树上DP LA 3942 Remember the Word
- UILabel使用自定义字体