LeetCode—704. 二分查找(简单)

server/2024/11/28 4:28:35/

仅供个人学习使用

题目描述:

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

示例 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

 题目解析:

本题的实质是二分查找,定义左右两个指针left、right,开始时分别指向数组的首和尾,以及一个中间值mid=(left+right)/2。然后就是分情况讨论,mid和target的大小关系:

  • nums[mid]=target,直接返回mid;
  • nums[mid]<target,则说明target在mid的右边,left指针移动到mid的右边,即left=mid+1;
  • nums[mid]>target,则说明target在mid的左边,right指针移动到mid的左边,即right=mid-1;

实现代码:

class Solution {public int search(int[] nums, int target) {int left = 0;int right = nums.length-1;while(left<=right){int mid = (left+right)/2;if(nums[mid] == target){return mid;}else if(nums[mid]>target){right = mid-1;}else{left = mid+1;}}return -1;  //查找失败}
}


http://www.ppmy.cn/server/145527.html

相关文章

SCAU软件体系结构实验四 组合模式

目录 一、题目 二、源码 一、题目 个人(Person)与团队(Team)可以形成一个组织(Organization)&#xff1a;组织有两种&#xff1a;个人组织和团队组织&#xff0c;多个个人可以组合成一个团队&#xff0c;不同的个人与团队可以组合成一个更大的团队。 使用控制台或者JavaFx界面…

两个docker之间的服务相互访问

背景 测试阶段, 两个模型分别封装了两个docker环境, 都是封装成了接口形式, 比如dockerA 和dockerB环境. Docker环境联通 创建自定义的bridge网络 docker network create testnet(自定义名称)查询到新创建的bridge testnet docker network ls运行容器连接到testnet网络 d…

centos 服务器 docker 使用代理

宿主机使用代理 在宿主机的全局配置文件中添加代理信息 vim /etc/profile export http_proxyhttp://127.0.0.1:7897 export https_proxyhttp://127.0.0.1:7897 export no_proxy"localhost,127.0.0.1,::1,172.171.0.0" docker 命令使用代理 例如我想在使用使用 do…

RabbitMQ原理架构解析:消息传递的核心机制

文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1、简单模式3.2、工作模式3.3、发布订阅3.4、路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1、单机部署5.2、集群部署&#xff08;镜像模式&#xff09;5.3、K8s部署…

网络安全中的数据科学如何重新定义安全实践?

组织每天处理大量数据&#xff0c;这些数据由各个团队和部门管理。这使得全面了解潜在威胁变得非常困难&#xff0c;常常导致疏忽。以前&#xff0c;公司依靠 FUD 方法&#xff08;恐惧、不确定性和怀疑&#xff09;来识别潜在攻击。然而&#xff0c;将数据科学集成到网络安全中…

随手记:鼠标触顶方法

// 鼠标触顶方法 scrollMethod() { window.onscroll () > { let t document.documentElement.scrollTop || document.body.scrollTop; if(t > 10) { this.positionStyle.top 0px; }else{ this.positionStyle.top 128px; } } },

学习JavaEE的日子 Day09 一维数组

day09 一维数组 { } 理解&#xff1a;一组数据的容器 应用场景&#xff1a;存储多个数据的时候可以考虑使用数组 概念&#xff1a; 1.数组是引用数据类型 2.数组中的数据&#xff0c;称之为元素 3.元素的都有编号&#xff0c;称之为下标/索引 4.下标从0开始 5.数组一旦初始化成…

docker 部署mysql 指导

使用Docker部署MySQL是一个相对简单但需要注意细节的过程。以下是一个详细的指导步骤&#xff1a; 一、前期准备 检查系统环境&#xff1a; 确保你的操作系统支持Docker。 检查Docker版本&#xff0c;确保它是最新版本或至少是一个稳定的版本。 检查Docker服务是否正在运行。 …