1.1-数组-704. 二分查找★
704. 二分查找 ★
力扣题目链接,给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,搜索 nums 中的 target,如果存在返回下标,否则返回 -1。n 将在 [1, 10000]之间。
- 可以假设
nums中的所有元素是不重复的。 n将在[1, 10000]之间。nums的每个元素都将在[-9999, 9999]之间。
示例 1:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
示例 2:
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1
本地练习
pub struct Solution;use std::cmp::Ordering;impl Solution {pub fn search(nums: Vec<i32>, target: i32) -> i32 {}
}fn main() {let res = [(vec![-1, 0, 3, 5, 9, 12], 9), (vec![-1, 0, 3, 5, 9, 12], 2)].iter().map(|x| Solution::search(x.0.to_vec(), x.1)).collect::<Vec<_>>();println!("{:?}: {:?}", vec![4, -1] == res, res);
}
Rust答案
- (版本一)左闭右开区间
use std::cmp::Ordering;
impl Solution {pub fn search(nums: Vec<i32>, target: i32) -> i32 {let (mut left, mut right) = (0, nums.len());while left < right {let mid = (left + right) / 2;match nums[mid].cmp(&target) {Ordering::Less => left = mid + 1,Ordering::Greater => right = mid,Ordering::Equal => return mid as i32,}}-1}
}
- (版本二)左闭右闭区间
use std::cmp::Ordering;
impl Solution {pub fn search(nums: Vec<i32>, target: i32) -> i32 {let (mut left, mut right) = (0, nums.len());while left <= right {let mid = (right + left) / 2;match nums[mid].cmp(&target) {Ordering::Less => left = mid + 1,Ordering::Greater => right = mid - 1,Ordering::Equal => return mid as i32,}}-1}
}
相关文章:
1.1-数组-704. 二分查找★
704. 二分查找 ★ 力扣题目链接,给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,搜索 nums 中的 target,如果存在返回下标,否则返回 -1。n 将在 [1, 10000]之间。 可以假设 nums 中的所…...
人物百度百科怎么做?需要什么资料?
在互联网时代,百度百科作为国内最具权威性的知识分享平台,吸引了大量用户关注和参与。究竟哪些人适合创建和编辑人物百度百科呢?本文伯乐网络传媒将为您揭秘人物百度百科的适用人群,并详细介绍如何注册、登录、创建及维护人物百度…...
在基于Android相机预览的CV应用程序中使用 OpenCL
查看:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV4.9.0在Android 开发简介 下一篇:在 MacOS 中安装 本指南旨在帮助您在基于 Android 相机预览的 CV 应用程序中使用 OpenCL ™。教程是为 Android Studio 20…...
网络分类简述与数据链路层协议(PPP)
实验拓扑 实验要求 1、R1和R2使用PPP链路直连,R2和R3把2条PPP链路捆绑为PPP MP直连按照图示配置IP地址 2、R2对R1的PPP进行单向chap验证 3、R2和R3的PPP进行双向chap验证 实验思路 给R1、R2的S3/0/0接口配置IP地址,已给出网段192.168.1.0/24R2作为主…...
Linux文件系列:磁盘,文件系统,软硬链接
Linux文件系列:磁盘,文件系统,软硬链接 一.磁盘相关知识1.磁盘机械构成2.磁盘物理存储3.磁盘逻辑存储1.LBA地址2.磁盘的分区和分组 二.文件系统和inode1.inode结构体2.文件系统1.Super Block(超级块)2.Group Descriptor Table(块组描述表GDT)3.inode Table4.Data Blocks5.Block…...
GPT4.0
GPT4.0 支持官网所有功能以及所有第三方GPTS,完全同步官网。无需魔法,填写授权码直达官网。全天超18小时维护,无需担心不稳定。没有永久卡,3.5免费提供,4.0可以按需下单即可,不存在跑路。 需要的联系...
软件工程(双语)
教材《软件工程 实践者的研究方法》 双语教学,但目前感觉都是在讲没用的 ”过程决定质量,复用决定效率” 介绍 软工的本质 程序数据结构算法 软件程序文档(需求、模型、说明书) 软件应用: 系统软件 应用 工程/科学…...
网络——套接字编程UDP
目录 端口号 源端口号和目的端口号 认识TCP协议和UDP协议 网络字节序 socket编程接口 socket常见接口 sockaddr结构 UDP socket bind recvfrom sendto 编写客户端 绑定INADDR_ANY 实现聊天功能 端口号 在这之前我们已经说过源IP地址和目的IP地址,还有…...
FPGA_AD9361
1.集成12位DAC和ADC的一款器件,2个输入模拟通道和2个输出模拟通道 2.• TX频段:47 MHz至6.0 GHz • RX频段:70 MHz至6.0 GHz 3.SPI配置成LVDS或CMOS接口,也可以还可以选择FDD(频分双工——全双工,操作时需…...
探讨Java代码混淆加固工具
摘要 本篇博客将介绍几种常用的Java代码混淆工具,如ProGuard、Allatori Java Obfuscator、VirboxProtector、ipaguard和DashO。我们将深入探讨它们的特点、功能以及在保护Java应用程序安全方面的作用。此外,还将强调在使用Java代码混淆工具时需要注意的安…...
Linux——du, df命令查看磁盘空间使用情况
一、实现原理: df 命令的全称是Disk Free ,显而易见它是统计磁盘中空闲的空间,也即空闲的磁盘块数。它是通过文件系统磁盘块分配图进行计算出的。 du 命令的全称是 Disk Used ,统计磁盘有已经使用的空间。它是直接统计各文件各目…...
数据库实验(一)SQL Server触发器
目录 触发器的定义 触发器和存储过程的区别 触发器的优点 触发器的作用 触发器的分类 DML触发器 DDL触发器 登录触发器 触发器的工作原理 inserted表 deleted表 创建触发器 编程要求 测试要求: 实验代码: 触发器的定义 触发器是建立在触…...
添加网址到主页
基于localStorage的网址收藏夹-CSDN博客 为了通过安卓菜单添加网址到主页中,调试了几个小时,主要踩了几个坑。 1.localStorage 通过域名隔离,需要加载主页才能读写。 2.WebView 可以不显示,但是 JS 代码要放在 window.onload 中…...
消息中间件如何实现高可用
消息中间件实现高可用的方式有很多种,常见的方法包括: 集群部署:通过在多台服务器上部署消息中间件实例,构成一个集群,提高整体系统的可用性。当一台机器出现故障时,其他机器可以继续提供服务。主从复制&a…...
Hbase 王者荣耀数据表 HBase常用Shell命令
大数据课本: HBase常用Shell命令 在使用具体的Shell命令操作HBase数据之前,需要首先启动Hadoop,然后再启动HBase,并且启动HBase Shell,进入Shell命令提示符状态,具体命令如下: $ cd /usr/local…...
家用智能洗地机哪个牌子好?4款型号让你解锁高效省力生活体验
在今天的社会中,随着生活节奏的加快,人们对于家庭清洁的需求不断增加。传统的清洁方法已经无法满足现代家庭的需求。因此,洗地机作为一种高效、方便的清洁工具,已经成为了许多家庭首选的清洁设备。然而,在市场上&#…...
Linux--进程(1)
目录 前言 1.冯诺依曼体系结构 2. 操作系统(Operator System)--第一个被加载的软件 3.进程 3.1基本概念 3.2Linux中的PCB 3.3通过系统调用创建子进程-fork初识 fork:创建一个子进程 为什么要创建子进程? fork的原理: 进一步了解fo…...
Qt登录页面
#include "mywidget.h" #include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget) {ui->setupUi(this);//接收动图QMovie *mv new QMovie(":/pictrue/luori.gif");ui->loglab->setMovie(…...
软件工程-第8章 软件测试
8.1 软件测试目标域软件测试过程模型 8.2 软件测试技术 8.3 静态分析技术-程序正确性证明 8.4 软件测试步骤 8.5 本章小结...
专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。
今年分数出来还是比较满意,专业801信号与系统135,总分400,没想到自己也可以考出400以上的分数,一年的努力付出都是值得的,总结一下自己的复习心得,希望对大家复习有所帮助。专业课:(…...
避免数据丢失!制作Win10启动盘前必须知道的U盘备份技巧
避免数据丢失!制作Win10启动盘前必须知道的U盘备份技巧 在数字化时代,U盘不仅是便携存储工具,更是系统维护的重要载体。当我们需要为电脑安装或重装Windows 10系统时,制作启动盘是最常用的方法之一。然而,许多用户在操…...
OpenClaw+千问3.5-35B-A3B-FP8:个人知识库自动化更新系统
OpenClaw千问3.5-35B-A3B-FP8:个人知识库自动化更新系统 1. 为什么需要自动化知识库更新 作为一个长期依赖个人知识库的技术写作者,我深刻体会到手动维护知识库的痛点。每当遇到新资料,我需要经历"阅读→摘录→分类→归档"的全流…...
Qwen3.5-9B快速上手:3步启动WebUI(supervisorctl restart)超详细步骤
Qwen3.5-9B快速上手:3步启动WebUI(supervisorctl restart)超详细步骤 1. 开篇介绍 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,具备强大的逻辑推理、代码生成和多轮对话能力。特别值得一提的是,它的多模态变体Qw…...
聊城本地企业获客服务商推荐与测评(2026版)
2026年,随着 豆包、文心一言 等生成式AI工具的普及,企业获客方式正在发生根本性变化:用户不再依赖传统搜索引擎,而是直接通过AI获取推荐结果。对于聊城本地企业而言,无论是机械制造、农产品加工,还是本地生…...
小程序支付实名认证跳转:从安卓兼容到iOS限制的实战处理方案
1. 小程序支付实名认证跳转的痛点解析 最近在开发一个保险行业的小程序时,遇到了一个让人头疼的问题:支付环节需要跳转到微支保小程序进行实名认证。最初的做法很简单粗暴,直接在页面加载时就调用wx.navigateToMiniProgram跳转。测试时发现&a…...
从工业5.0到实战:一个智能仓库管理系统的设计与Flutter优化
引言 工业5.0并非对工业4.0的颠覆,而是一次“人性的回归”与“价值的重塑”。它强调以人为本(Human-centric)、可持续(Sustainable)与韧性(Resilient)。作为一名计算机专业的毕业生,…...
DuinoMemory:面向Arduino的轻量级嵌入式智能指针库
1. 项目概述DuinoMemory 是一款专为 Arduino 及资源受限嵌入式系统设计的轻量级智能指针库。它不依赖 STL、不使用异常(exceptions)、不启用 RTTI,完全以头文件形式提供(header-only),所有实现均通过 C 模板…...
企业财务自动化全场景落地,从入门到精通的完整指南 —— 2026企业级智能体选型与实战路径
在2026年的数字化深水区,企业财务管理正经历从“信息化”向“原生智能化”的跨代跃迁。 随着金税四期的全场景覆盖与数据要素资产化的推进,财务部门已不再满足于基础的流程自动化。 从“钱、票、账、税、资”的碎片化处理,到构建全链路闭环的…...
表格设计:结构与美感并重
1. 表格的结构如果把表格比作一座建筑,那么它的每个结构部件都承担着特定功能。下面是一个完整的表格示例,展示了所有标准结构组件:表格结构图解:标题与副标题:表格的"名字"和"简介",告…...
单片机驱动MOS管的原理与实战技巧
1. 单片机直接驱动MOS管的原理与风险MOS管作为现代电子设计中最常用的功率开关器件,其控制方式看似简单却暗藏玄机。作为一名经历过多次"炸管"教训的硬件工程师,我想分享一些关于单片机直接驱动MOS管的实战经验。MOS管分为NMOS和PMOS两种类型&…...
