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;

}

}

}

相关推荐
pystraf1 分钟前
模板分享:网络最小费用流
c++·算法·图论·网络流
GG不是gg6 分钟前
排序算法之高效排序:快速排序,归并排序,堆排序详解
数据结构·算法·排序算法
GG不是gg6 分钟前
排序算法之线性时间排序:计数排序,基数排序,桶排序详解
数据结构·算法·排序算法
亚里随笔16 分钟前
AlphaEvolve:LLM驱动的算法进化革命与科学发现新范式
人工智能·算法·llm·大语言模型
越城19 分钟前
深入理解二叉树:遍历、存储与算法实现
c语言·数据结构·算法
oioihoii28 分钟前
C++23 中的 ranges::fold_left:范围折叠算法
算法·c++23
zyhomepage1 小时前
科技的成就(六十八)
开发语言·人工智能·科技·算法·内容运营
瑞雪兆丰年兮1 小时前
数学实验(Matlab编程基础)
开发语言·算法·matlab·数学实验
✿ ༺ ོIT技术༻1 小时前
笔试强训:Day5
c++·算法
Hygge-star1 小时前
【数据结构】二分查找-LeftRightmost
java·数据结构·算法