当前位置: 首页 > news >正文

日常算法刷题——力扣704

##2023/3/2 刷算法的第一天

针对力扣的704题:本题是二分查找的基本使用!在此需要注意二分查找的基本特点:
1.数列基本有序;
2.数列数据内容不可重复。
此题只需了解二分查找算法的基本概念,无坑可跳。但在力扣上刷题就需要知道你所使用的语言的一些基本内容(显然我还不知)!

今天第一次刷题,对C++的vector只有基本的认识,现已经知晓:1.vector定义的向量名可以直接作为数组名来使用!
2.vector定义的向量求元素个数的函数是:向量名.size()。
代码见下:

class Solution {
public:int search(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)right=mid-1;elseleft=mid+1;}return -1;}
};

不过这里我看代码随想录讲的这种是左闭右闭,还有一种的是左闭右开,这种写法你的坑会比较少,下面附上左闭右开,这种坑太多了!
左闭右开:

class Solution {
public:int search(vector<int>& nums, int target) {// 左闭右开int left=0,right=nums.size();//nums.size()输出的是元素个数,对应的是元素下标+1while(left<right){int mid=(left+right)/2;if(nums[mid]==target)return mid;else if(nums[mid]<target)left=mid+1;elseright=mid;}return -1;   }
};

坑一:nums.size()这里不用减一的原因是通过此函数取得的是元素个数,正是每个元素的下标值+1。而这样做的目的也正是为了达到[left,right)的目的!因为取出的值是大于数据下标最大值的,所以右边必然是闭区间。
坑二:当nums[mid]==target的时候,取得值照常理理解的是应该为mid-1,但是这里我们想到的是mid是通过mid=(left+right)/2取得的,所以它会自动向下取整,也就是已经减去1了;
坑三:当区间不匹配的时候,调整左的left和右的right是不一样的,原因是对于区间**[left,right)**,left是在区间内部,所以上一轮已经走过一次了,所以需要+1,对于right,它是在区间之外的,还未到达(也不可能到达),所以不要-1。

这是作为一个大四的人花费了很久弄出的一个题!

相关文章:

日常算法刷题——力扣704

##2023/3/2 刷算法的第一天 针对力扣的704题&#xff1a;本题是二分查找的基本使用&#xff01;在此需要注意二分查找的基本特点&#xff1a; 1.数列基本有序&#xff1b; 2.数列数据内容不可重复。 此题只需了解二分查找算法的基本概念&#xff0c;无坑可跳。但在力扣上刷题就…...

【服务器数据恢复】VMware虚拟机下的SQL Server数据库数据恢复案例

服务器数据恢复环境&#xff1a; 一台某品牌PowerEdge系列服务器和一台PowerVault系列存储&#xff0c;上层是ESXI虚拟机文件&#xff0c;虚拟机中运行SQL Server数据库。 服务器故障&#xff1a; 机房非正常断电导致虚拟机无法启动。管理员检查虚拟机发现虚拟机配置文件丢失&…...

详解旨在提升EVM底层性能的兼容公链Monad

EVM带来的繁荣2020年以太坊链上DeFi的蓬勃发展使得EVM成为关注焦点&#xff0c;大部分DeFi项目都开始基于以太坊公链&#xff0c;这也使得EVM成为行业的标杆&#xff0c;不少链都加入了EVM大军&#xff0c;比如polygon、BSC、fantom等等&#xff0c;而EVM也使得链上生态进一步繁…...

2023社会工作者证书怎么考 在哪里报名考试

考取社会工作者证需要在网上报名&#xff0c;社工证是证书考试&#xff0c;分为初级、中级和高级三个级别&#xff0c;一般情况下满足报考条件就可以进行报考了&#xff0c;在中国人事考试网上进行报名及缴费。 1考取社会工作者证的流程 1、社工证报名需要登录中国人事考试网&a…...

统计学 类别比变量的判断

文章目录类别比变量的判断一个类别变量的拟合优度检验两个类别变量的独立性检验列联表与 χ2\chi^2χ2 独立性检验应用 χ2\chi^2χ2 检验应该注意的问题两个类别变量的相关度检验φ\varphiφ 系数Cramers VVV 系数列联系数总结类别比变量的判断 一个类别变量的拟合优度检验 …...

2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等

文档抽取任务Label Studio使用指南 1.基于Label studio的训练数据标注指南&#xff1a;信息抽取&#xff08;实体关系抽取&#xff09;、文本分类等 2.基于Label studio的训练数据标注指南&#xff1a;&#xff08;智能文档&#xff09;文档抽取任务、PDF、表格、图片抽取标注等…...

如何在openKylin操作系统上搭建Qt开发环境

一、获取linux系统下的Qt安装包 Qt官网下载地址&#xff1a;https://download.qt.io 国内镜像下载地址&#xff1a;https://mirrors.cloud.tencent.com/qt/ 。建议用镜像下载速度快。集成安装包在 official_releases/qt 目录下&#xff0c;新地址&#xff1a;https://downloa…...

T_SQL和SQL的区别

一. SQL Server和T-SQL的区别&#xff08;⭐T-SQL 包含了 SQL&#xff09;SQL Server是结构化查询语言,是目前关系型数据库管理系统中使用最广泛的查询语言T-SQL是标准SQL语言的扩展,是SQL Server的核心,在SQL的的基础上添加了变量,运算符,函数和流程控制等&#xff0c;Microso…...

用Python自己写一个分词器,python实现分词功能,隐马尔科夫模型预测问题之维特比算法(Viterbi Algorithm)的Python实现

☕️ 本文系列文章汇总&#xff1a; &#xff08;1&#xff09;HMM开篇&#xff1a;基本概念和几个要素 &#xff08;2&#xff09;HMM计算问题&#xff1a;前后向算法 代码实现 &#xff08;3&#xff09;HMM学习问题&#xff1a;Baum-Welch算法 代码实现&#xff08…...

刷题笔记2 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 输入&#xff1a;nums [-4,-1,0,3,10] 输出&#xff1a;[0,1,9,16,100] 解释&#xff1a;平方后&#xff0c;数组变为 […...

python 支付宝营销活动现金红包开发接入流程-含接口调用加签

1 创建网页/移动应用 2 配置接口加签方式 涉及到金额的需要上传证书&#xff0c;在上传页面有教程&#xff0c; 在支付宝开放平台秘钥工具中生成CSR证书&#xff0c;会自动保存应用公钥和私钥到电脑上&#xff0c;调用支付宝接口需要应用私钥进行加签 上传完CSR证书后会有三个…...

Python操作Windows

用python进行windows端UI自动化的库有很多&#xff0c;比如pywinauto等&#xff0c;本文介绍一个使用autoit3来实现的 pyautoit 库pyautoit 是一个用python写的基于AutoItX3.dll的接口库&#xff0c;用来进行windows窗口的一系列操作&#xff0c;也支持鼠标键盘的操作。安装pip…...

Aptos SDK交互笔记(一)

背景 之前我们已经了解TS的一些语法&#xff0c;接下来可以实战训练下&#xff0c;这系列的文章就会介绍如何通过Aptos官网提供的TypeScript SDK与Aptos进行交互&#xff0c;这篇文章主要讲的就是如何使用提供API在aptos区块链上转帐。 官网示例 官网提供了交互的例子&#…...

汽车 12V 和 24V 电池输入保护推荐

简介汽车电池电源线路在运行系统时容易出现瞬变。所需的典型保护包括过压、过载、反极性和跨接启动。在汽车 的生命周期中&#xff0c;交流发电机可能会被更换为非OEM 部件。售后市场上的交流发电机可能具有不同的负载突降&#xff08;LOAD DUMP&#xff09;保护或没有负载突降…...

龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式

编者按&#xff1a;在开源新基建加快建设的背景下&#xff0c;越来越多的企业选择加入龙蜥社区&#xff0c;当前社区生态合作伙伴已突破 300 家。于是&#xff0c;龙蜥社区能为加入的企业提供哪些支持成为越多伙伴们更加关注的话题。本文将以龙蜥社区和龙芯中科联合研发龙蜥 Lo…...

剑指 Offer 16. 数值的整数次方

摘要 剑指 Offer 16. 数值的整数次方 本题的方法被称为快速幂算法&#xff0c;有递归和迭代两个版本。这篇题解会从递归版本的开始讲起&#xff0c;再逐步引出迭代的版本。当指数n为负数时&#xff0c;我们可以计算 x^(-n)再取倒数得到结果&#xff0c;因此我们只需要考虑n为…...

在苹果电脑 mac 上安装原神(playCover)

该方法只能在 M1、M2 mac 上安装原神 目录前言一、首先下载安装 playCover1. playCover 下载2. playCover 安装安装出现问题解决方法二、下载安装原神1.安装包下载2.安装原神三、登录、键盘映射及版本更新等问题登录键盘映射版本更新前言 最近买了新的mac&#xff0c;作者本人…...

数据结构考研习题精选

&#xff11; A假设比较&#xff54;次&#xff0c;由于换或不换&#xff0c;则必然有&#xff12;&#xff3e;&#xff54;种可能。又设有&#xff4e;个关键字&#xff0c;&#xff4e;&#xff01;排列组合&#xff0c;则必然有&#xff12;&#xff3e;&#xff54;&…...

linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)

linux常用命令介绍 04 篇——uniq命令使用介绍&#xff08;Linux重复数据的统计处理&#xff09;1. uniq 使用语法2. sort 简单效果3. uniq 使用例子3.1 不加任何选项3.1.1 不用 sort 效果3.1.2 uniq 结合 sort 一起使用3.2 使用选项例子3.2.1 去重打印&#xff08;或打印不重复…...

网站打不开数据库错误等常见问题解决方法

1、“主机开设成功&#xff01;”上传数据后显示此内容&#xff0c;是因为西部数码默认放置的index.htm内容&#xff0c;需要核实wwwroot目录里面是否有自己的程序文件&#xff0c;可以删除index.htm。 2、恭喜&#xff0c;lanmp安装成功&#xff01;这个页面是wdcp的默认页面&…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...