LeetCode(704)的二分查找 (简单)

题目描述:

704. 二分查找

给定一个 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

代码:

第一种:

class Solution {

public int search(int[] nums, int target) {

int i=0,j=nums.length-1;

while(i<=j){

int mid=(i+j)>>>1;

if(target<nums[mid]){

j=mid-1;

}else if(nums[mid]<target){

i=mid+1;

}

else{

return mid;

}

}

return -1;

}

}

第二种:

class Solution {

public int search(int[] nums, int target) {

int i=0,j=nums.length;

while(i<j){

int mid=(i+j)>>>1;

if(target<nums[mid]){

j=mid;

}else if(nums[mid]<target){

i=mid+1;

}

else{

return mid;

}

}

return -1;

}

}

第三种:

class Solution {

public int search(int[] nums, int target) {

int i=0,j=nums.length;

while(j-i>1){

int mid=(i+j)>>>1;

if(target<nums[mid]){

j=mid;

}else {

i=mid;

}

}

if(nums[i]==target){

return i;

}else{

return -1;

}

}

}

相关推荐
怎么没有名字注册了啊3 小时前
求一个矩阵中的鞍点
数据结构·算法
Greedy Alg3 小时前
LeetCode 74. 搜索二维矩阵
算法
小猪咪piggy3 小时前
【算法】day7 滑动窗口+二分查找
算法
仟千意3 小时前
数据结构:二叉树
数据结构·算法
一水鉴天4 小时前
整体设计 逻辑系统程序 之34七层网络的中台架构设计及链路对应讨论(含 CFR 规则与理 / 事代理界定)
人工智能·算法·公共逻辑
DuHz4 小时前
C程序中的数组与指针共生关系
linux·c语言·开发语言·嵌入式硬件·算法
而后笑面对4 小时前
力扣2025.10.19每日一题
算法·leetcode·职场和发展
·白小白4 小时前
力扣(LeetCode) ——11.盛水最多的容器(C++)
c++·算法·leetcode
沐浴露z6 小时前
【JVM】详解 垃圾回收
java·jvm·算法
代码欢乐豆6 小时前
编译原理机测客观题(7)优化和代码生成练习题
数据结构·算法·编译原理