数组_二分查找
数组_二分查找
- 一、leetcode-572
- 二、题解
- 1.代码
- 2.思考
一、leetcode-572
二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
样例输入:nums = [-1,0,3,5,9,12], target = 9
样例输出: 4
解释: 9 出现在 nums 中并且下标为 4
二、题解
1.代码
class Solution {
public:int search(vector<int>& nums, int target) {for(int i=0,j=nums.size()-1,k;i<=j;){k=(i+j)/2;if(target==nums[k]){return k;}else if(target>nums[k]){i=k+1;}else{j=k-1;}}return -1;}
};
2.思考
对区间的定义想清楚,区间的定义就是不变量。要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。
也就是[left, right] (这个很重要非常重要)
- while (left <= right) 要使用 <= ,因为left == right是有意义的,所以使用 <=
- if (nums[middle] > target) right 要赋值为 middle - 1,因为当前这个nums[middle]一定不是target,那么接下来要查找的左区间结束下标位置就是 middle - 1
相关文章:
数组_二分查找
数组_二分查找 一、leetcode-572二、题解1.代码2.思考 一、leetcode-572 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则…...
VUE环境搭建
node.js安装 node npm – node Package Management 安装完成后,需要设置: npm config set prefix "D:\nodejs"注意:“D:\nodejs” 此处为自己安装的node.js路径。管理员身份运行 切换镜像源 npm config set registry https://r…...
MATLAB图像处理:Sobel、Roberts、Canny等边缘检测算子
边缘是图像中像素值剧烈变化的区域,反映了目标的轮廓、纹理等关键信息。边缘检测是图像分割、目标识别等任务的基础。本文将系统解析 六种经典边缘检测算子 的数学原理、实现方法及适用场景,并给出完整的MATLAB代码示例和对比分析。 1. 边缘检测基础 1…...
C++ 标准库常见容器
容器类型类型分类特点示例代码vector序列容器动态数组,支持随机访问,末尾操作效率高std::vector v {1, 2, 3}; v.push_back(4);deque序列容器双端队列,支持两端操作和随机访问std::deque d {1, 2, 3}; d.push_front(0);list序列容器双向链表…...
Ubuntu+Laravel+MQ+Supervisor队列系统搭建流程
1、安装MQ环境 sudo apt install -y rabbitmq-server sudo systemctl enable rabbitmq-server --now 2、进入laravel项目,安装MQ队列驱动 composer require vladimir-yuldashev/laravel-queue-rabbitmq 3、配置 .env QUEUE_CONNECTIONrabbitmq RABBITMQ_HOST12…...
力扣100. 相同的树(利用分解思想解决)
Problem: 100. 相同的树 文章目录 题目描述思路Code 题目描述 思路 题目要求判断两个二叉树是否完全相同,而此要求可以利用问题分解的思想解决,即判断当前节点的左右子树是否完全相同,而在二叉树问题分解的一般题目中均会带有返回值ÿ…...
全面了解HTTP(一)
全面了解HTTP(二)-CSDN博客 web及网络基础 使用HTTP协议访问web: HTTP: 网络基础TCP/IP 与HTTP关系密切的协议:IP,TCP,DNS 负责域名解析的DNS服务 各种协议与HTTP协议的关系 URI和URL 简单的HTTP协议 HTTP协议用于客户端和服…...
element-ui时间组件同一个月内选择/30天内选择
element-ui时间组件同一个月内选择/30天内选择 同一个月 <el-date-picker v-model"time" type"datetimerange"range-separator"至" start-placeholder"开始时间"value-format"timestamp" :picker-options"pickerO…...
NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)
循环嵌套 循环嵌套的使⽤ while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如: 写⼀个代码,打印⼀个乘法⼝…...
深入浅出Java反射:掌握动态编程的艺术
小程一言反射何为反射反射核心类反射的基本使用获取Class对象创建对象调用方法访问字段 示例程序应用场景优缺点分析优点缺点 注意 再深入一些反射与泛型反射与注解反射与动态代理反射与类加载器 结语 小程一言 本专栏是对Java知识点的总结。在学习Java的过程中,学习…...
大模型被偷家?CNN结合多模态!
2025深度学习发论文&模型涨点之—— CNN多模态 卷积神经网络是一种特殊类型的神经网络,其主要结构包括卷积层、池化层、全连接层和输出层。卷积层通过卷积操作学习图像的特征,池化层通过下采样操作减少参数数量,全连接层和输出层通过分类…...
UI自动化测试的优缺点?
优点 • 提高测试效率:可以快速地重复执行测试用例。例如,对于一个有大量表单需要验证的网页应用,自动化测试可以在短时间内完成多次输入检查,而手动测试则会花费大量时间。 • 保证测试一致性:每次执行测试的步骤和…...
在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库
在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库有一些特殊的考虑,因为数据库通常运行在容器中,并且数据存储在卷(如 PersistentVolume)中。你可以通过几种方式在外部备份 PostgreSQL 数据库,下面是一些…...
机器视觉中的3d和2d的区别
在机器视觉中,3D和2D的主要区别体现在数据的维度、处理方式及应用场景上。以下是具体对比: 数据维度 2D视觉 :处理二维图像,仅包含宽度和高度信息,通常以像素矩阵表示。 3D视觉 :处理三维数据,…...
exr 格式下 全景图(经纬图、panorama)转 cubemap
先上效果 (X, -X, Y, -Y, Z, -Z) 下载 exr 经纬图 笔者用的这张:https://polyhaven.com/a/kloofendal_48d_partly_cloudy_puresky 使用 Openexr 的 exrenvmap 工具 下载 我 build 了一份 3.3.2 版本的,免积分下载。 https:/…...
STM32 ADC介绍(硬件原理篇)
目录 背景 AD转换器 采样与保持 量化 编码 AD转换器转换原理 DA转换原理 AD转换原理 背景 在数字系统的广泛应用中,用数字系统处理模拟量的情况十分普遍,因此引入了模拟信号和数字信号的接口问题。为了解决这一问题,首先利用模数转换…...
snort3.0 获取注册规则(19000多条)
面对生活中的手机、电脑网络监控,很多人都是束手无策的,只不过雁过留声风过留痕,黑客路过就会留下入侵痕迹,比如手机没玩的时候,流量异常的增多,并且一直和某一个IP地址通信很频繁,可能是黑客正…...
【GitHub】装修个人主页
持续更新各种好文,长期更新技能手册,建议关注收藏点赞! 创建仓库,仓库名自己用户名 权限:public 勾选add a README file修改README.md 这里都是运用markdown语法,以及html标签编写的,可以自行修…...
名词解释:npm,cnpm,yarn,vite,vue,electron
1. npm (Node Package Manager) 读音: “N-P-M” 或者直接读作 “npm”。 npm 是 Node.js 的官方包管理器,用于安装、发布和管理 JavaScript 软件包。它允许开发者轻松地共享代码,并且可以通过命令行工具来管理依赖关系。通过 npm init 命令可以交互式…...
XMOS的多项音频技术创新将大模型与边缘AI应用密切联系形成生态化合
2025蛇年春节,DeepSeek大语言模型以超低的训练成本震撼全球,预示着大模型技术将以更快的脚步全面走进我们的工作和生活,同时也促进了能够连通各种大模型和应用场景的智能终端将加速演进。语音作为人类与机器最常用的互动沟通媒体,…...
Taotoken用量看板如何帮助个人开发者控制成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken用量看板如何帮助个人开发者控制成本 对于个人开发者或小型工作室而言,在探索和集成大模型能力时,…...
[具身智能-629]:为什么语音有这么多接口类型
一句话核心:不同场景、距离、音质、功耗、算力、布线、抗干扰需求,逼出了不同语音接口,没有一种能通吃所有。我们用最通俗、工程化的逻辑讲,听完彻底详解:1. 先分两大类:模拟声音 vs 数字声音① 模拟接口&a…...
QKeyMapper完全指南:Windows平台终极按键映射解决方案
QKeyMapper完全指南:Windows平台终极按键映射解决方案 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到键鼠,…...
跨平台资源下载器:轻松捕获网络视频与音频资源的完整指南
跨平台资源下载器:轻松捕获网络视频与音频资源的完整指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否曾…...
英雄联盟段位修改终极指南:5分钟掌握LeaguePrank伪装技巧
英雄联盟段位修改终极指南:5分钟掌握LeaguePrank伪装技巧 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 你是否想过在英雄联盟中展示不同的段位给好友看?LeaguePrank正是为你量身打造的段位修改神器&a…...
告别繁琐手动切割:Pixelorama智能精灵图切割让效率提升90%
告别繁琐手动切割:Pixelorama智能精灵图切割让效率提升90% 【免费下载链接】Pixelorama Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just …...
AI项目从Demo到落地的8个关键突破
为什么我们用AI两周就能做出惊艳的Demo,却在接下来一个月里怎么也把它推不出去?我们团队在做微信支付数字员工时,就掉进了这个坑里。把 AI 从 Demo 做成数字员工:我们靠这 8 招,搞定了 AI 的“不靠谱”最近这半年&…...
别再只盯着机械雷达了!聊聊MEMS、相控阵这些固态激光雷达到底强在哪
固态激光雷达技术革命:MEMS与相控阵如何重塑自动驾驶感知格局 当Waymo第五代自动驾驶系统将MEMS激光雷达成本压缩至7500美元时,行业终于意识到固态化浪潮已不可逆转。传统机械式激光雷达的旋转部件正如内燃机之于电动车,正在经历一场静默但彻…...
ETS2LA:在《欧洲卡车模拟2》中实现自动驾驶的终极解决方案
ETS2LA:在《欧洲卡车模拟2》中实现自动驾驶的终极解决方案 【免费下载链接】Euro-Truck-Simulator-2-Lane-Assist Plugin based interface program for ETS2/ATS. 项目地址: https://gitcode.com/gh_mirrors/eur/Euro-Truck-Simulator-2-Lane-Assist 你是否曾…...
罗技PUBG压枪宏完整指南:从原理到实战的深度解析
罗技PUBG压枪宏完整指南:从原理到实战的深度解析 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在《绝地求生》这类FPS游戏中&#…...
