首页 > 其他分享 >数的范围

数的范围

时间:2024-02-06 16:56:42浏览次数:23  
标签:arr java int mid io import 范围

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class 数的范围 {
    public static void binarySearch(int arr[],  int x){
        int l = 0, r = arr.length-1;
        while (l < r){
            int mid = l + r >> 1;
            // 找左边界,如果mid>=x,那么在左边,r=mid
            if (arr[mid] >= x){
                r = mid;
            }else {
                l = mid + 1;
            }
        }
        // 如果无解就输出 -1 -1
        if (arr[l] != x){
            System.out.println(-1 + " " + -1);
        }else {
            int l1 = 0, r1 = arr.length-1;
            while (l1 < r1){
                int mid1 = l1 + r1 + 1 >> 1;
                // 找右边界,如果mid<=x,那么在右边,l=mid
                if (arr[mid1] <= x){
                    l1 = mid1;
                }else {
                    r1 = mid1 - 1;
                }
            }
            // 现在找到了左右边界,直接输出
            System.out.println(l+" "+l1);
        }
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int arrLength,queryNumbers;
        String[] strings = br.readLine().split(" ");
        // 数组长度和查询次数
        arrLength = Integer.parseInt(strings[0]);
        queryNumbers = Integer.parseInt(strings[1]);
        // 数组内容
        int[] arr = new int[arrLength];
        String[] arrStrs = br.readLine().split(" ");
        for (int i = 0; i < arrLength; i++) {
            arr[i] = Integer.parseInt(arrStrs[i]);
        }
        // 进行查询
        while (queryNumbers-- >0){
            int x = Integer.parseInt(br.readLine());
            binarySearch(arr,x);
        }
    }
}

标签:arr,java,int,mid,io,import,范围
From: https://www.cnblogs.com/YaoMa/p/18009978

相关文章

  • openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志
    openGauss学习笔记-215openGauss性能调优-确定性能调优范围-性能日志215.1性能日志概述性能日志主要关注外部资源的访问性能问题。性能日志指的是数据库系统在运行时检测物理资源的运行状态的日志,在对外部资源进行访问时的性能检测,包括磁盘、OBS等外部资源的访问检测信息。ope......
  • 缩小数据范围——nc2.4多校_A.新春游戏之数学系列
    目录问题概述思路分析参考代码做题反思问题概述原题参考A.新春游戏之数学系列大致就是给出一个数组,要求求出一个公式的值,有几个数据范围值得注意一下,一是数组的长度为[0,1e6],二是数组元素的和不超过5e7思路分析赛时第一眼准备去分析公式看看有没有可以优化的,用前缀拆分优化......
  • java - 判断时间范围区间
    JSONObjectrespObj=newJSONObject(s);SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");StringstartTimeStr="2024-01-01";StringendTimeStr="2024-01-31";DatestartTimDate=sdf.parse(startTimeStr);//strin......
  • 《PMBOK指南第六版》第5章 项目范围管理 ——> 收集需求
    第5章项目范围管理——>收集需求收集需求 是为实现目标而确定、记录并管理相关方的需要和需求的过程。本过程的主要作用是,为定义产品范围和项目范围奠定基础,且仅开展一次或仅在项目的预定义点开展。   ......
  • m基于Q-Learning强化学习的异构网络小区范围扩展(CRE)技术matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要        基于Q-Learning强化学习的异构网络小区范围扩展(CellRangeExtension,CRE)技术是一种旨在优化异构无线网络性能的方法。异构网络是由不同类型的基站(如宏基站、微基站、皮基站等)组成的网络,这......
  • c# 8.0特性索引和范围
    在阅读代码时碰到以下语法vartype=topic["DevModel/Query/".Length..];其中topic为string,主要疑惑Lenght后面的..查找资料发现为8.0新语法,主要新增了两种语法,官方解释如下使用索引和范围探索数据范围-C#|MicrosoftLearn也有一些其他博主的文章C#8.0特性篇之索引和......
  • 电源模块 输入电压范围 输出电压电流 效率 短路保护 过载保护
    电源模块输入电压范围输出电压电流效率短路保护过载保护电源模块的重要参数包括:输入电压范围:指电源模块能够正常工作的输入电压范围,通常以最小和最大输入电压表示。输出电压:指电源模块输出的稳定直流电压。输出电流:指电源模块能够提供的最大输出电流。效率:指电源模块将输......
  • Maven学习之路--依赖范围scope 对于该包的依赖范围作用域,取值有:test、compile、provid
    Maven学习之路--依赖范围scope对于该包的依赖范围作用域,取值有:test、compile、provided、runtime。scope默认取值为compile。\   <scope></scope>表示对于该包的依赖范围作用域,取值有:test、compile、provided、runtime。scope默认取值为compile。<scope>test</scope>。te......
  • 软件测试活动中,如何评估测试范围?
    前言大家好,我是chowley,今天来讲一讲——如何评估软件测试范围在软件开发的不同阶段,评估测试范围是确保测试活动有效性和效率的关键步骤。测试范围的明确定义有助于确定测试目标、提高测试覆盖率,并确保在有限的时间内实现最大的测试价值。本文将深入探讨在软件测试中如何评估测试......
  • MySQL SQL点查,范围查,排序,分组的Explain分析和SQL优化(8.0版本)
    MySQLSQL常用优化主要有where,range,order,groupby,or等查询。下图是优化的原则,后面会有一个例子来看看:比如建立了联合索引(c1,c2,c3),索引长度分别为5,5,4。数据有50条:点查SELECT*FROMtraining.t1wherec3=1andc2=1andc1=1;使用了索引,只要全部包含索引列,那么点查顺序......