日常算法刷题——力扣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的默认页面&…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
云原生时代的系统设计:架构转型的战略支点
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、云原生的崛起:技术趋势与现实需求的交汇 随着企业业务的互联网化、全球化、智能化持续加深,传统的 I…...
从数据报表到决策大脑:AI重构电商决策链条
在传统电商运营中,决策链条往往止步于“数据报表层”:BI工具整合历史数据,生成滞后一周甚至更久的销售分析,运营团队凭经验预判需求。当爆款突然断货、促销库存积压时,企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…...
视觉slam--框架
视觉里程计的框架 传感器 VO--front end VO的缺点 后端--back end 后端对什么数据进行优化 利用什么数据进行优化的 后端是怎么进行优化的 回环检测 建图 建图是指构建地图的过程。 构建的地图是点云地图还是什么信息的地图? 建图并没有一个固定的形式和算法…...
