力扣刷题day2 ---数组 &&二分查找

leetcode hot100 中等难度 day04-刷题 阅读详情

问题描述

35. 搜索插入位置

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

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

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

示例 2:

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

示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

一是匹配 二是插入 匹配就是 找到 target 返回下标 就好了;如果是插入,插入的位置如果使用二分查找 ,插入的位置其实就是 大数或者小数(看怎么分)的位置

代码如下:

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left = -1, right = nums.size(), mid;
        while (left+1 <right) {//循环终止条件,不要忘记 加一 ,开始忘记了一直报错。。

            mid = (left + right)/2;//取中间的数

            if (nums[mid] < target) { //大了就往左找
                left = mid;
            } 
            else   {
                right = mid;  //小了就往右找
            }
        }

        //如果存在等于target的数那么right就为mid即target的下标
        //如果不存在,只需要将目标插入到mid的位置即可 即返回right ,当然也可以写左边
        return right;
    }
};

Zotero on Mac: 高效文献管理与引用指南 本文为Mac用户提供了一份全面的Zotero高效文献管理与引用指南。从安装配置、文献收集管理、PDF深度阅读与笔记,到在Word中无缝插入引用和生成参考文献,详细讲解了核心工作流。同时推荐了ZotFile、Better BibTeX等必备插件,并介绍了利用同步与WebDAV实现跨设备无缝衔接的方法,助力研究者构建个人数字知识库,极大提升学术研究效率。 阅读详情

相关推荐

大数据面试 逻辑题

逻辑题大致分为比较逻辑题、分析逻辑题、综合逻辑题、抽象逻辑题、概括逻辑题、推理逻辑题、论证逻辑题等,由于这类题比较考验综合素质,因此也一直是各大企业笔试、面试时经常喜欢考察的题目类型之一。很多童鞋认为逻辑题很难,其实不然。多做练习,打开思路,这类题还是可以轻易化解的。 下面为大家整理了网络上最全的75道逻辑判断测试题。在每道题目下方有答案,是用白色显示的,反选就可以看到啦~ 【1】假设有一个池...

zzq_0916s的博客 4421

力扣每日一练之二分查找Day7

力扣每日一练之二分查找Day7 🍕前面的话🥞 大家好!本篇文章将介绍20天算法刷题计划的题,本文将以三道题作为背景,介绍经典的二分查找,展示语言为java(博主学习语言为java)。今天呢,是博主开始刷力扣的第七天,如果有想要开始准备自己的算法面试的同学,可以跟着我的脚步一起,共同进步。大家都是并肩作战的伙伴,一起努力奋力前行,路漫漫其修远兮,吾将上下而求索,相信我们一定都可以拿到自己期望的offer,冲冲冲! 👩‍💻博客主页:京与旧铺的博客主页 ✨欢迎关注🖱点赞🎀收藏⭐留言✒ 🔮本文由京与旧铺原创,cs

qq_46272491的博客 1193

Java 网络编程(超级详细)

1. 网络编程 1.1 网络编程概述 计算机网络 是指将地理位置相同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 1.2 网络编程三要素 1、IP地址 要想让网络中的计算机能够互相通信,必须为计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。 2、端口 网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程

imByte的博客 3万+

力扣刷题之数组篇

二分法、双指针

qq_51423963的博客 1169

保姆级教程:用SSH手动重建黑群晖RAID1阵列,修复‘存储空间损毁’

本文提供了一份详细的SSH手动重建黑群晖RAID1阵列的教程,帮助用户修复‘存储空间损毁’问题。通过深入解析mdadm软RAID的底层逻辑,从诊断到重建的全过程,确保用户能够掌握黑群晖存储池的修复技术。适用于技术爱好者和系统管理员。

weixin_30319153的博客 292

5个必知的脑网络图论指标:从聚类系数到小世界特性(附BCT工具包使用指南)

本文深度解析脑网络图论分析中五个核心指标:聚类系数、特征路径长度、全局效率、局部效率及节点效率,并详解其计算与解读。结合Brain Connectivity Toolbox工具包,提供从实战计算、常见报错解决到小世界特性统计检验的完整指南,帮助研究者跨越理论与实操鸿沟,让连接矩阵数据真正服务于神经科学研究。

blue42的博客 925

你有多久没有坚持过一件事情了?如果没有就来刷一轮力扣LeetCode

选择一样你想做的事情,坚持21天。如果没有想好,那就先来刷一轮力扣吧!~

车手只需要车和手,压力来自轮胎 1360

在 dell precision 7920 tower CentOS 8 Stream 上安裝nvidia驱动程序、Anaconda

简单记录一下如何在实验室dell precision 7920 tower CentOS 8 Stream上安装nvidia显卡驱动。

chen9046的博客 994

LeetCode刷题DAY1

力扣(LeetCode)刷题:1480. 一维数组的动态和

cheung的博客 5364

SFR算法实现详解:从边缘检测到MTF计算的完整流程

本文详细解析了SFR算法从边缘检测到MTF计算的完整流程,包括边缘检测、ESF超采样、LSF差分等关键步骤。通过代码示例和实战经验,帮助开发者高效实现成像系统解析力评估,优化MTF测量精度。适用于摄像头模组调试、工业检测等场景。

Black的专栏 1009

CDDT CST CDDT CSTTT

This is the second part of the SA8653 automotive CDDT configuration guide. It describes the matching rules and modification methods between CDDT and device‑tree DDTS. It explains CDT’s underlying logic and configuration in TZ, QNX and Android. It details C

qq_39257814的博客 1410

刷题日记 Day 1 : Leetcode 704 二分查找以及 Leetcode 27 移除元素

题目链接 :34. 在排序数组中查找元素的第一个和最后一个位置大家可以自行完成 , 后续我也会把这道题的解题思路以及代码更新。

m0_53117341的博客 1141

自定义载板RK3588HDMI输入配置完整解决方案

✅ HDMI输入信号检测✅ 自动时序识别(支持1080p@60Hz等标准格式)✅ V4L2视频设备接口✅ 实时视频流捕获✅ H.264编码录制✅ HDCP内容保护支持问题根因识别:发现了hdmim1模块资源冲突的本质问题硬件设计理解:明确了Orange Pi 5 Plus的真实硬件设计意图功能实现:成功启用HDMI输入功能,替代了无法使用的HDMI1输出完整验证:建立了从硬件检测到视频录制的完整测试流程。

梁俊星的博客 1271

LeetCode刷题Day1

的后n个位置都是空的,如果从后向前遍历,将两数组中最大的先填在后面则可以避免数据覆盖。的开销完成,思路是:以辅助数组的方式完成是出于避免数据覆盖的考虑,而。**注意:**最终,合并后数组不应由函数返回,而是存储在数组。以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。你能否调整你的解法来应对这种情况?**进阶:**你可以设计实现一个时间复杂度为。是指向下一个节点的指针/引用。个元素表示应合并的元素,后。中,使合并后的数组同样按。的算法解决此问题吗?

Oven_Maxlin的博客 1539

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Leetcode 300题AC的刷题总结(C与C++)

文章目录前引闲聊力扣刷题心路历程Day1 全部看题解 看思路Day2 - Day7 基本上看题解 怀疑自己是弱智Day8 - Day15 诶~有些题自己可以做出来了Day16 - Day24 开始进入正轨 开始总结方法Day24 - Day24 动态规划学习开始折磨DAY 25 - Day40 摸索探索 每天黑人问号脸Day40 - Day66 逐渐开始好起来了 出现转折点Day 67 - Day 80 中间毅然决然打算学C++ 学成C++开始刷题Day 81 - Day 94 300AC达成300AC达

Love 6's Private Blog 1857

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

leetcode刷题Day1 数组

身边选手都找暑期实习了,但哥们啥也不会,焦绿了家人们,转战秋招了。算法一坨,学习一下,主要跟着这个仓库刷。youngyangyang04/leetcode-master: 《代码随想录》LeetCode 刷题攻略:200道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图,支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习不再迷茫!🔥🔥 来看看,你会发现相见恨晚!🚀。

kelekelekle的博客 846

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

力扣刷题Day1 | 数组Part01:数组理论基础,704. 二分查找,27. 移除元素

这里写错的原因是没有搞清楚for循环的用法,我以为for循环是在循环开头先执行判断,复合条件就++,然后执行下面的语句。但实际上++的操作是在循环末尾执行的,而判断语句是在循环开头执行的,那size = nums.size() - 1就会导致循环的时候无法执行到最后一位就结束了,因此正确的语句应该是“size = nums.size()”。因为刚学习c++,对语法还不熟悉,所以采用直接看答案后写题的方法,这题之前做过一次,上次看还搞不太清楚,这次看完题解思路就很清晰了,一次就能把答案写出来。

weixin_48337768的博客 2635

力扣刷题——数组 day2

今天的题目做下来仍然有些地方不是很不会,即使做过不止一遍,再次看见时也是非常的生疏,往往只能想到最傻最笨的方法,并且也未能做出来,思维仍然需要多加锻炼,刷题仍然要继续。

weixin_57973719的博客 687

【Hot100刷题计划】Day3 二分查找专题(持续更新)

Leetcode Hot100二分查找专题,常看常新。4天一个周期,熟练掌握常见算法题。

Blog of Mark 984

【每日刷题】Day178

1. 只出现一次的数字Ⅲ 2. 两数字和Ⅱ 3. 判断子序列

2301_78022459的博客 921

力扣面试经典150题刷题Day 2 数组和字符串(2)

今天做的主要是元素删除的题目。T26,27,80都是一类题目。针对删除元素的题目一般的方法都是,由于删除元素后整个数组的位置都要发生变化,因此设置两个指针。一个指针用于遍历整个数组,另一个指针用于指向下一个有效元素插入的位置。(因为删除元素后会导致被删除元素的位置为空,需要将后面的有效元素移到前面来)另一种方法是通用法,T26,T27,T80都可以用到,这是一个博主放个图:对于保留k个元素的题目,临界情况就是有k个相同的元素,这时这k个元素是都可以进行保留的;

jijlkl的博客 1731

代码随想录day1:[数组]二分查找法

二分查找也称折半查找,是在一组有序(升序/降序)的数据中查找一个元素,它是一种效率较高的查找方法。原理查找的目标数据元素必须是有序的。没有顺序的数据,二分法就失去意义。数据元素通常是数值型,可以比较大小。将目标元素和查找范围的中间值做比较(如果目标元素=中间值,查找结束),将目标元素分到较大/或者较小的一组。通过分组,可以将查找范围缩小一半。重复第三步,直到目标元素=新的范围的中间值,查找结束。在常见的刷题过程中会遇到左闭右闭区间和左闭右开区间的情况##1.左闭右闭伪代码。

weixin_56600336的博客 1167

【每日刷题】Day107

1. 搜索插入位置 2. 山脉数组的峰顶索引 3. 寻找峰值

2301_78022459的博客 877

leetcode 刷题记录,数组部分,代码随想录刷题顺序

看了好多攻略,打算第一遍刷题顺序跟着 代码随想录 :数组、链表、哈希表、字符串、双指针法、栈与队列、二叉树、回溯算法 、贪心算法、动态规划、单调栈 题外话:小白一枚,打算刷题提高编程能力,由于现在在公司算法部门实习,所以使用python语言,打算明年秋招之前用java或者c++再刷一遍。下面纯记录个人刷题日记及代码。 代码随想录:代码随想录 (programmercarl.com) DAY 1 704.二分查找 704. 二分查找 - 力扣(LeetCode) cla...

yyy199869的博客 3111

力扣每日一练之数组下篇Day3

力扣每日一练之数组下篇Day3 🍕前面的话🥞 大家好!本篇文章将介绍2周搞定数据结构的题,来自力扣的35,两个数组的交集和121.买卖股票的最佳时机,本文将以这两道题作为背景,介绍经典的数组排序以及线性查找,展示语言为java(博主学习语言为java)。今天呢,是博主开始刷力扣的第三天,如果有想要开始准备自己的算法面试的同学,可以跟着我的脚步一起,共同进步。大家都是并肩作战的伙伴,一起努力奋力前行,路漫漫其修远兮,吾将上下而求索,相信我们一定都可以拿到自己期望的offer,冲冲冲! 👩‍💻博客主页:京与旧

qq_46272491的博客 1495

Leetcode刷题 Day1 数组:二分法,双指针

需要注意的点:1.数组下标从0开始2.数组内存空间地址是连续的。

A21281005_的博客 1305
上一篇: 力扣刷题day1 ---数组 &&双指针
下一篇: 力扣刷题day3 ---数组
Qian_Chi
博客等级 码龄5年 64粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值