日常算法刷题——力扣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题:本题是二分查找的基本使用!在此需要注意二分查找的基本特点: 1.数列基本有序; 2.数列数据内容不可重复。 此题只需了解二分查找算法的基本概念,无坑可跳。但在力扣上刷题就…...
【服务器数据恢复】VMware虚拟机下的SQL Server数据库数据恢复案例
服务器数据恢复环境: 一台某品牌PowerEdge系列服务器和一台PowerVault系列存储,上层是ESXI虚拟机文件,虚拟机中运行SQL Server数据库。 服务器故障: 机房非正常断电导致虚拟机无法启动。管理员检查虚拟机发现虚拟机配置文件丢失&…...
详解旨在提升EVM底层性能的兼容公链Monad
EVM带来的繁荣2020年以太坊链上DeFi的蓬勃发展使得EVM成为关注焦点,大部分DeFi项目都开始基于以太坊公链,这也使得EVM成为行业的标杆,不少链都加入了EVM大军,比如polygon、BSC、fantom等等,而EVM也使得链上生态进一步繁…...
2023社会工作者证书怎么考 在哪里报名考试
考取社会工作者证需要在网上报名,社工证是证书考试,分为初级、中级和高级三个级别,一般情况下满足报考条件就可以进行报考了,在中国人事考试网上进行报名及缴费。 1考取社会工作者证的流程 1、社工证报名需要登录中国人事考试网&a…...
统计学 类别比变量的判断
文章目录类别比变量的判断一个类别变量的拟合优度检验两个类别变量的独立性检验列联表与 χ2\chi^2χ2 独立性检验应用 χ2\chi^2χ2 检验应该注意的问题两个类别变量的相关度检验φ\varphiφ 系数Cramers VVV 系数列联系数总结类别比变量的判断 一个类别变量的拟合优度检验 …...
2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等
文档抽取任务Label Studio使用指南 1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等 2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等…...
如何在openKylin操作系统上搭建Qt开发环境
一、获取linux系统下的Qt安装包 Qt官网下载地址:https://download.qt.io 国内镜像下载地址:https://mirrors.cloud.tencent.com/qt/ 。建议用镜像下载速度快。集成安装包在 official_releases/qt 目录下,新地址:https://downloa…...
T_SQL和SQL的区别
一. SQL Server和T-SQL的区别(⭐T-SQL 包含了 SQL)SQL Server是结构化查询语言,是目前关系型数据库管理系统中使用最广泛的查询语言T-SQL是标准SQL语言的扩展,是SQL Server的核心,在SQL的的基础上添加了变量,运算符,函数和流程控制等,Microso…...
用Python自己写一个分词器,python实现分词功能,隐马尔科夫模型预测问题之维特比算法(Viterbi Algorithm)的Python实现
☕️ 本文系列文章汇总: (1)HMM开篇:基本概念和几个要素 (2)HMM计算问题:前后向算法 代码实现 (3)HMM学习问题:Baum-Welch算法 代码实现(…...
刷题笔记2 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结
977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 […...
python 支付宝营销活动现金红包开发接入流程-含接口调用加签
1 创建网页/移动应用 2 配置接口加签方式 涉及到金额的需要上传证书,在上传页面有教程, 在支付宝开放平台秘钥工具中生成CSR证书,会自动保存应用公钥和私钥到电脑上,调用支付宝接口需要应用私钥进行加签 上传完CSR证书后会有三个…...
Python操作Windows
用python进行windows端UI自动化的库有很多,比如pywinauto等,本文介绍一个使用autoit3来实现的 pyautoit 库pyautoit 是一个用python写的基于AutoItX3.dll的接口库,用来进行windows窗口的一系列操作,也支持鼠标键盘的操作。安装pip…...
Aptos SDK交互笔记(一)
背景 之前我们已经了解TS的一些语法,接下来可以实战训练下,这系列的文章就会介绍如何通过Aptos官网提供的TypeScript SDK与Aptos进行交互,这篇文章主要讲的就是如何使用提供API在aptos区块链上转帐。 官网示例 官网提供了交互的例子&#…...
汽车 12V 和 24V 电池输入保护推荐
简介汽车电池电源线路在运行系统时容易出现瞬变。所需的典型保护包括过压、过载、反极性和跨接启动。在汽车 的生命周期中,交流发电机可能会被更换为非OEM 部件。售后市场上的交流发电机可能具有不同的负载突降(LOAD DUMP)保护或没有负载突降…...
龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式
编者按:在开源新基建加快建设的背景下,越来越多的企业选择加入龙蜥社区,当前社区生态合作伙伴已突破 300 家。于是,龙蜥社区能为加入的企业提供哪些支持成为越多伙伴们更加关注的话题。本文将以龙蜥社区和龙芯中科联合研发龙蜥 Lo…...
剑指 Offer 16. 数值的整数次方
摘要 剑指 Offer 16. 数值的整数次方 本题的方法被称为快速幂算法,有递归和迭代两个版本。这篇题解会从递归版本的开始讲起,再逐步引出迭代的版本。当指数n为负数时,我们可以计算 x^(-n)再取倒数得到结果,因此我们只需要考虑n为…...
在苹果电脑 mac 上安装原神(playCover)
该方法只能在 M1、M2 mac 上安装原神 目录前言一、首先下载安装 playCover1. playCover 下载2. playCover 安装安装出现问题解决方法二、下载安装原神1.安装包下载2.安装原神三、登录、键盘映射及版本更新等问题登录键盘映射版本更新前言 最近买了新的mac,作者本人…...
数据结构考研习题精选
1 A假设比较t次,由于换或不换,则必然有2^t种可能。又设有n个关键字,n!排列组合,则必然有2^t&…...
linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)
linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)1. uniq 使用语法2. sort 简单效果3. uniq 使用例子3.1 不加任何选项3.1.1 不用 sort 效果3.1.2 uniq 结合 sort 一起使用3.2 使用选项例子3.2.1 去重打印(或打印不重复…...
网站打不开数据库错误等常见问题解决方法
1、“主机开设成功!”上传数据后显示此内容,是因为西部数码默认放置的index.htm内容,需要核实wwwroot目录里面是否有自己的程序文件,可以删除index.htm。 2、恭喜,lanmp安装成功!这个页面是wdcp的默认页面&…...
Gmail只读命令行工具gcli:云端自动化邮件查询与SSH隧道授权方案
1. 项目概述:一个专为自动化场景设计的Gmail只读命令行工具 如果你和我一样,经常需要在没有图形界面的云服务器上处理邮件查询任务,那你一定对Gmail API的授权流程深恶痛绝。传统的OAuth流程要求你在浏览器里点来点去,但服务器上哪…...
喜马拉雅音频下载器:三分钟学会批量保存心爱内容
喜马拉雅音频下载器:三分钟学会批量保存心爱内容 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 在数字音频内容日益丰…...
AI编程助手成本优化:混合路由策略如何将API账单降低73%
1. 项目概述:当AI编程助手成为API预算的“吞金兽”如果你正在为团队开发或集成一个AI编程助手,并且看着每月五位数的API账单感到头皮发麻,这篇文章就是为你准备的。我亲眼见过不少开发团队,在享受着AI辅助编程带来的效率提升时&am…...
AI编码助手技能开发:基于Agent Skills打造智能命令行速查工具
1. 项目概述:一个能“听懂人话”的开发者命令行技能如果你和我一样,每天在终端和代码编辑器里花费大量时间,那你肯定对“命令遗忘症”深有体会。明明上周才用过git worktree来并行处理两个功能分支,今天突然想不起来具体的参数顺序…...
OpencvSharp 算子学习教案之 - Cv2.Sobel
OpencvSharp 算子学习教案之 - Cv2.Sobel 大家好,Opencv在很多工程项目中都会用到,而OpencvSharp则是以C#开发与实现的Opencv操作库,对.NET开发人员友好,但很多API的中文资料、应用场景及常见坑点等缺乏系统性归纳,因此…...
手把手教你用GD32F303定时器PWM驱动LED,从寄存器配置到CubeMX生成代码
GD32F303定时器PWM开发全攻略:寄存器配置与图形化工具实战对比 在嵌入式开发领域,PWM(脉冲宽度调制)技术如同一位无声的指挥家,精准控制着LED亮度、电机转速等关键参数。对于GD32F303这款高性能ARM Cortex-M4内核微控制…...
PyQt-Fluent-Widgets导航组件深度解析:打造专业级侧边栏与选项卡界面
PyQt-Fluent-Widgets导航组件深度解析:打造专业级侧边栏与选项卡界面 【免费下载链接】PyQt-Fluent-Widgets A fluent design widgets library based on C Qt/PyQt/PySide. Make Qt Great Again. 项目地址: https://gitcode.com/gh_mirrors/py/PyQt-Fluent-Widget…...
OpenFOAM实战:在interFoam中植入多孔介质源项模拟复杂固壁
1. 多孔介质模拟的工程需求与原理 在流体力学仿真中,我们经常遇到需要处理复杂几何边界的情况。传统方法是通过精细的网格划分来精确描述固体边界,但这会带来两个主要问题:一是计算成本急剧上升,二是对于动态变化的边界࿰…...
PyTorch预训练模型‘解剖课’:以VGG19为例,彻底搞懂如何自定义输出层(避坑指南)
PyTorch预训练模型‘解剖课’:以VGG19为例,彻底搞懂如何自定义输出层(避坑指南) 当你第一次拿到一个预训练好的VGG19模型,兴奋地准备用它提取图像特征时,却发现自己被卡在了第一步——这个"黑箱"…...
5G FR1与FR2频段下,SSB的Kssb子载波偏移配置实战与避坑指南
5G FR1与FR2频段下SSB的Kssb子载波偏移配置实战与避坑指南 在5G网络部署中,同步信号块(SSB)的配置直接关系到终端设备能否成功接入网络。其中,Kssb子载波偏移参数在不同频段(FR1与FR2)下的取值范围和单位存…...
