搜索插入位置(easy)

更好的阅读体验应该是:

  1. 审题-思考
  2. 答题
  3. 整理-归纳

一、题目

LeetCode题目链接:35.搜索插入的位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 1:

输入: [1,3,5,6], 5
输出: 2

示例 2:

输入: [1,3,5,6], 2
输出: 1

二、题解

分析题干

分析题目很重要,每次阅读题目都要感谢当年做的那么多阅读理解,本题中,我们得知:

  1. 数组是排过序的数组
  2. 无重复元素

题解一(暴力法)

提到暴力法,就是频繁的使用遍历,且没有所谓的“套路”,从上倒下透漏出的都是实在!

时间复杂度: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.搜索插入位置相关推荐

  1. 【LeetCode】35. 搜索插入位置---JavaScript解法

    [LeetCode]35. 搜索插入位置-JavaScript解法 原题链接:https://leetcode-cn.com/problems/search-insert-position/ /*** ...

  2. LeetCode Algorithm 35. 搜索插入位置

    35. 搜索插入位置 Ideas 题目中给的提示已经很清楚了,要求时间复杂度是O(log n),这不是指着鼻子跟我说:给老子用二分查找嘛! Code Python def searchInsert(s ...

  3. LeetCode 题 - 35. 搜索插入位置

    搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5, ...

  4. 【LeetCode】35. 搜索插入位置(C++实现)

    传送门:https://leetcode-cn.com/problems/search-insert-position/ 一.题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引. ...

  5. 力扣(LeetCode) 35. 搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...

  6. LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置

    前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...

  7. leetcode 35. 搜索插入位置(二分法搜索失败的情况)

    35. 搜索插入位置 思路:二分查找 模板: 如果查找成功,返回target在nums中的下标 //二分查找模板 //nums[0..n-1]为有序数组,target为目标 int left=0; i ...

  8. 力扣35. 搜索插入位置python实现

    35. 搜索插入位置 一.问题描述 二.算法思想   题目中的数组是排好序的,从头开始遍历,当发现列表中元素的值与target相等时返回该元素在列表中的位置i,否则继续查找,当发现列表中的元素比tar ...

  9. LeetCode-二分查找-35. 搜索插入位置

    35. 搜索插入位置 思路:二分查找 class Solution {public:int searchInsert(vector<int>& nums, int target) ...

  10. LeetCode-数组-35. 搜索插入位置

    描述 35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使用时间复杂度为 O(log n) 的算法. ...

最新文章

  1. Halcon知识: XLD的概念
  2. blockchain paper
  3. godaddy最新域名优惠码永久有效
  4. 一个经典的多线程同步问题
  5. 男女洗澡前后区别,太形象了!(文末送书)
  6. 485通信c语言讲解,51单片机485通讯讲解 通俗易懂
  7. r语言如何下载carzip包本地安装_R语言安装程序包
  8. java企业员工考勤系统ssm框架
  9. 来听大师讲设计(中)
  10. 程序员2022年薪资出炉:一线城市薪资中位数已破1.5万元,你工资涨了吗?
  11. Spark基本工作流程和作业调度
  12. fgetc 与 getc的区别
  13. tiktok旋转验证码识别
  14. python实现熵权法
  15. FOC——18.单片机CPU内核框图
  16. MAC自带词典添加词典文件
  17. 操作系统实验读者写者程序源码_我的操作系统梦破灭了
  18. 华三路由器链路聚合配置(华三交换机配置)
  19. php计算素数,质数素数计算器
  20. java基础代码,适合0基础学习者

热门文章

  1. java兔子_JAVA编程题-用java解决兔子问题
  2. windows下置顶窗口 Topmost
  3. 用python画小花_用python的小海龟 Turtle 画一朵好看又有趣的小花-Go语言中文社区...
  4. RAR和ZIP:压缩大战真相
  5. [sig16]《使命召唤》中的全局光照技术
  6. 上下选项点击箭头html,点击上下箭头,页码发生改变(示例代码)
  7. linux比较命令 -eq,linux == eq(equal)
  8. 世界第三大浏览器正在消亡。。。
  9. python多项式拟合_最小二乘法—多项式拟合非线性函数
  10. Eclipse 插件升级:如何在线安装/更新 Eclipse 中安装的官方/第三方插件?