35. Search Insert Position
来源:互联网 发布:js判断是否等于0 编辑:程序博客网 时间:2024/06/07 15:41
Problem:
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.
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
这道题也是一道Easy的题,题意是找出数组中匹配target值的下标,匹配不到的话就找出target值应该插入的位置的下标。
Code(LeetCode运行6ms):
class Solution {public: int searchInsert(vector<int>& nums, int target) { for (int i = 0; i < nums.size(); i++) { if (nums[i] >= target) { return i; } if (i == nums.size() - 1) { return nums.size(); } } }};
最近重新看回这一道题,发现以前的做法时间复杂度是O(n)的,其实用二分查找的话,复杂度可以减少到O(logn)。
Code(LeetCode运行6ms)
int searchInsert(vector<int>& nums, int target) { if (nums.size() == 0) { return 0; } return searchInsert(nums, target, 0, nums.size() - 1); } int searchInsert(vector<int>& nums, int target, int start, int end) { if (start > end) { return start; } int mid = start + (end - start) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] < target) { return searchInsert(nums, target, mid + 1, end); } else { return searchInsert(nums, target, start, mid - 1); } }
从LeetCode运行时间来看好像一样,但是假如样例更大更复杂,那么时间就会有区别了。
阅读全文
0 0
- 35.Search Insert Position
- 35. Search Insert Position
- 35.Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 35. Search Insert Position
- 《C++ Primer》读书笔记第四章-2-类型转换
- 结合服务端和客户端使用protobuf
- webpack2.0搭建react框架环境
- 基础算法回顾
- 有关Java反射机制的作用及用法浅析
- 35. Search Insert Position
- Python入门(一) 安装python+pycharm
- 如何在JS页面中引入时间插件(简单时间)
- 异常
- ARM微处理器系列简介
- 观察者模式
- 集合
- 好玩的数学问题
- linux timerfd_create说明简单翻译