leetcode:题目 :二分查找
2023-04-18 14:43:44 时间
题目 :二分查找
给定一个 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
二分查找的使用条件很简单
有序的排列即可
解题思路 :设定左右指针
找出中间位置,并判断该位置值是否等于 target
nums[mid] == target 则返回该位置下标
nums[mid] > target 则右侧指针移到中间
nums[mid] < target 则左侧指针移到中间
图解
有序数组用二分和不用二分的区别
直接遍历全部,效率只超过了百分之十
用了二分
差距十分的明显,算法之妙
解题代码
public static int search(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while(left<=right) {
int mid = left + (right - left) / 2;
if(nums[mid] == target) {
return mid;
} else if(nums[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
相关文章
- LeetCode刷题实战449:序列化和反序列化二叉搜索树
- LeetCode刷题实战450:删除二叉搜索树中的节点
- 美团买菜IOS版设备风控浅析与算法还原
- 剖析短链接工具开发原理与源码讲解
- 如何制作面包标签
- 一天一个 Linux 命令(42):iostat 命令
- CKAD认证中的部署教程
- 知识分享之概念——程序中多态的理解,什么是继承什么是多态?
- 多级页表的好处
- ViewPager2打造Banner轮播图
- 同步 IO 和异步 IO
- HOW (AND HOW NOT) TO WRITE A GOOD SYSTEMS PAPER
- 搭建数字化员工福利平台,是企业发放员工福利的首选吗?
- Hyper-V虚拟机网络配置ContOS 7
- Elasticsearch 7.10.1压测对比( Intel竟然压不过AMD)
- startx命令 – 初始化X-windows
- Linux 用户和用户组管理常用方法
- Linux 磁盘管理常用三个命令为 df、du 和 fdisk。
- dhclient命令 – 动态获取或释放IP地址
- resize2fs命令 – 调整文件系统大小