【CT】LeetCode手撕—704. 二分查找

目录

  • 题目
  • [1- 思路](#1- 思路)
  • [2- 实现](#2- 实现)
    • [⭐704. 二分查找------题解思路](#⭐704. 二分查找——题解思路)
  • [3- ACM 实现](#3- ACM 实现)

题目


1- 思路

  • 模式识别1:查找元素,二分查找

2- 实现

⭐704. 二分查找------题解思路

java 复制代码
class Solution {
    public int search(int[] nums, int target) {
        int l = 0;
        int r = nums.length - 1;
        while (l < r) {
            int mid = (l + r + 1) / 2;
            if (nums[mid] <= target) {
                l = mid;
            } else {
                r = mid - 1;
            }
        }

        if (nums[l] != target) {
            return -1;
        } else {
            return l;
        }
    }
}

3- ACM 实现

java 复制代码
public class binarySearch {


    public static int binary(int[] nums,int target){
        int l = 0 ;
        int r = nums.length-1;
        while (l<r){
            int mid = (l+r+1)/2;
            if(nums[mid] == target){
                l = mid;
            }else{
                r = mid-1;
            }
        }

        if(nums[l] == target){
            return l;
        }
        return -1;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入数组长度");
        int n = sc.nextInt();
        int[] nums = new int[n];
        for(int i = 0 ; i < n ; i ++){
            nums[i] = sc.nextInt();
        }
        System.out.println("输入查找的元素值");
        int t = sc.nextInt();

        System.out.println("下标为"+binary(nums,t));
    }
}

相关推荐
FirstFrost --sy6 分钟前
数据结构之二叉树
c语言·数据结构·c++·算法·链表·深度优先·广度优先
森焱森16 分钟前
垂起固定翼无人机介绍
c语言·单片机·算法·架构·无人机
搂鱼11451435 分钟前
(倍增)洛谷 P1613 跑路/P4155 国旗计划
算法
Yingye Zhu(HPXXZYY)36 分钟前
Codeforces 2021 C Those Who Are With Us
数据结构·c++·算法
无聊的小坏坏2 小时前
三种方法详解最长回文子串问题
c++·算法·回文串
长路 ㅤ   2 小时前
Java后端技术博客汇总文档
分布式·算法·技术分享·编程学习·java后端
秋说2 小时前
【PTA数据结构 | C语言版】两枚硬币
c语言·数据结构·算法
qq_513970443 小时前
力扣 hot100 Day37
算法·leetcode
不見星空3 小时前
leetcode 每日一题 1865. 找出和为指定值的下标对
算法·leetcode
我爱Jack3 小时前
时间与空间复杂度详解:算法效率的度量衡
java·开发语言·算法