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;

}

}

}

相关推荐
neardi临滴科技1 小时前
从算法逻辑到芯端落地:YOLO 目标检测的进化与瑞芯微实践
算法·yolo·目标检测
小雨下雨的雨1 小时前
Flutter跨平台开发实战:鸿蒙系列-循环交互艺术系列——瀑布流:不规则网格的循环排布算法
算法·flutter·华为·交互·harmonyos·鸿蒙系统
小雨下雨的雨1 小时前
Flutter跨平台开发实战: 鸿蒙与循环交互艺术:跑马灯的无极滚动算法
算法·flutter·华为·交互·harmonyos·鸿蒙
charliejohn4 小时前
计算机考研 408 数据结构 树形查找 相关概念及计算题例题
数据结构·考研
NAGNIP9 小时前
一文搞懂机器学习中的特征降维!
算法·面试
NAGNIP9 小时前
一文搞懂机器学习中的特征构造!
算法·面试
Learn Beyond Limits10 小时前
解构语义:从词向量到神经分类|Decoding Semantics: Word Vectors and Neural Classification
人工智能·算法·机器学习·ai·分类·数据挖掘·nlp
你怎么知道我是队长10 小时前
C语言---typedef
c语言·c++·算法
Qhumaing12 小时前
C++学习:【PTA】数据结构 7-1 实验7-1(最小生成树-Prim算法)
c++·学习·算法