LeetCode题解:35.搜索插入位置
搜索插入位置(easy)
更好的阅读体验应该是:
- 审题-思考
- 答题
- 整理-归纳
一、题目
LeetCode题目链接:35.搜索插入的位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
示例 2:
输入: [1,3,5,6], 2
输出: 1
二、题解
分析题干
分析题目很重要,每次阅读题目都要感谢当年做的那么多阅读理解,本题中,我们得知:
- 数组是排过序的数组
- 无重复元素
题解一(暴力法)
提到暴力法,就是频繁的使用遍历,且没有所谓的“套路”,从上倒下透漏出的都是实在!
时间复杂度:O(n)
空间复杂度:O(1)
思路
- 找到第一比 target 大的元素,它的下标,就是要答案。
实现
var searchInsert = function(nums, target) {const len = nums.length;for (let i = 0; i < len; i++) {if (nums[i] >= target) {return i;}}return len;
};
题解二(二分法)
在一个排序的数组查找,我们可以使用二分法
我们的目的是:查找一个下标index
,我们要找的nums[index] <= target
的第一个值。
如果找不到,就返回数组的长度
时间复杂度:O(log(n))
空间复杂度:O(1)
var searchInsert = function(nums, target) {const len = nums.length;let left = 0; //左边界let right = len - 1; // 右边界let ans = len; // 返回值,注意如果目标不在数组中,返回数组的长度while (left <= right) {mid = ((right - left) >> 1) + left;if (target <= nums[mid]) {// 证明左边界在数组内部ans = mid; // 更新返回值right = mid - 1;} else {left = mid + 1;}}return ans;
};
三、写在最后
这是二分法解题的第一片文章,二分法具体是做什么的,以及其他应用场景我会在新的单章里发出,共勉
关于我
- 花名:余光
- WX:j565017805
- 沉迷JS,水平有限,虚心学习中
其他沉淀
- JavaScript版LeetCode题解
- 前端进阶笔记
- CSDN
如果您看到了最后,不妨来个三连吧,这就是对我最大的鼓励!
LeetCode题解:35.搜索插入位置相关推荐
- 【LeetCode】35. 搜索插入位置---JavaScript解法
[LeetCode]35. 搜索插入位置-JavaScript解法 原题链接:https://leetcode-cn.com/problems/search-insert-position/ /*** ...
- LeetCode Algorithm 35. 搜索插入位置
35. 搜索插入位置 Ideas 题目中给的提示已经很清楚了,要求时间复杂度是O(log n),这不是指着鼻子跟我说:给老子用二分查找嘛! Code Python def searchInsert(s ...
- LeetCode 题 - 35. 搜索插入位置
搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5, ...
- 【LeetCode】35. 搜索插入位置(C++实现)
传送门:https://leetcode-cn.com/problems/search-insert-position/ 一.题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引. ...
- 力扣(LeetCode) 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- leetcode 35. 搜索插入位置(二分法搜索失败的情况)
35. 搜索插入位置 思路:二分查找 模板: 如果查找成功,返回target在nums中的下标 //二分查找模板 //nums[0..n-1]为有序数组,target为目标 int left=0; i ...
- 力扣35. 搜索插入位置python实现
35. 搜索插入位置 一.问题描述 二.算法思想 题目中的数组是排好序的,从头开始遍历,当发现列表中元素的值与target相等时返回该元素在列表中的位置i,否则继续查找,当发现列表中的元素比tar ...
- LeetCode-二分查找-35. 搜索插入位置
35. 搜索插入位置 思路:二分查找 class Solution {public:int searchInsert(vector<int>& nums, int target) ...
- LeetCode-数组-35. 搜索插入位置
描述 35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使用时间复杂度为 O(log n) 的算法. ...
最新文章
- Halcon知识: XLD的概念
- blockchain paper
- godaddy最新域名优惠码永久有效
- 一个经典的多线程同步问题
- 男女洗澡前后区别,太形象了!(文末送书)
- 485通信c语言讲解,51单片机485通讯讲解 通俗易懂
- r语言如何下载carzip包本地安装_R语言安装程序包
- java企业员工考勤系统ssm框架
- 来听大师讲设计(中)
- 程序员2022年薪资出炉:一线城市薪资中位数已破1.5万元,你工资涨了吗?
- Spark基本工作流程和作业调度
- fgetc 与 getc的区别
- tiktok旋转验证码识别
- python实现熵权法
- FOC——18.单片机CPU内核框图
- MAC自带词典添加词典文件
- 操作系统实验读者写者程序源码_我的操作系统梦破灭了
- 华三路由器链路聚合配置(华三交换机配置)
- php计算素数,质数素数计算器
- java基础代码,适合0基础学习者
热门文章
- java兔子_JAVA编程题-用java解决兔子问题
- windows下置顶窗口 Topmost
- 用python画小花_用python的小海龟 Turtle 画一朵好看又有趣的小花-Go语言中文社区...
- RAR和ZIP:压缩大战真相
- [sig16]《使命召唤》中的全局光照技术
- 上下选项点击箭头html,点击上下箭头,页码发生改变(示例代码)
- linux比较命令 -eq,linux == eq(equal)
- 世界第三大浏览器正在消亡。。。
- python多项式拟合_最小二乘法—多项式拟合非线性函数
- Eclipse 插件升级:如何在线安装/更新 Eclipse 中安装的官方/第三方插件?