2024/3/23 蓝桥杯

P1102 A-B 数对 二分

java 复制代码
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		//A-B=C
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int C = sc.nextInt();
		int[] res = new int[n+1];
		for(int i=1;i<=n;i++) {
			res[i] = sc.nextInt();
		}
		
		Arrays.sort(res,1,n+1);//1
		long ans = 0;//2
		
		for(int i=1;i<=n;i++) {//枚举B
			
			int l1 = i,r1 = n;//二分A
			while(l1<r1) {
				int mid = (l1+r1)/2;
				if(res[mid]-res[i]>=C)	r1 = mid;
				else	l1 = mid+1;
			}
			
			int l2 = i,r2 = n;
			while(l2<r2) {
				int mid = (l2+r2+1)/2;
				if(res[mid]-res[i]<=C)	l2 = mid;
				else	r2 = mid-1;
			}
			
			if(res[l2] - res[i] == C) {
				ans+=(l2-l1)+1;
			}
		}
		System.out.println(ans);
	}
}

789. 数的范围 二分

java 复制代码
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int k = sc.nextInt();
		int[] res = new int[n];
		for(int i=0;i<n;i++)
			res[i] = sc.nextInt();
		while(k--!=0) {
			int x = sc.nextInt();
			//先大于等于再小于等于
			int l1 = 0,r1 = n-1;
			while(l1<r1) {
				int mid1 = (l1+r1)/2;
				if(res[mid1]>=x) r1 = mid1;
				else	l1 = mid1+1;
			}
			if(res[l1] == x) {
				int l2 = 0,r2 = n-1;
				while(l2<r2) {
					int mid2 = (l2+r2+1)/2;
					if(res[mid2]<=x) l2 = mid2;
					else	r2 = mid2-1; 
				}
				System.out.println(l1+" "+l2);
			}else {
				System.out.println("-1 -1");
			}
		}
	}
}
相关推荐
wuminyu5 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh5 小时前
SpringBoot 配置⽂件
java·spring boot·spring
Wang's Blog6 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
骑着蜗牛撵大象3276 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕6 小时前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java
weixin_307779137 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
三无少女指南7 小时前
从这里开始:Java 后端与 AI 工程的三条阅读路线
java·学习路线·ai工程
香蕉大香蕉(06敬畏市场)8 小时前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
nice_lcj5208 小时前
深入理解 Java 反射:从 Class 对象到方法调用(含性能实测 + 迷你 IOC 实战 + 面试考点)
java·开发语言·后端·面试
骑着蜗牛撵大象3279 小时前
2026 后端 AI 工程化:Spring AI 管调用、MCP 管工具、Agent 内嵌管自治
java·人工智能·后端·spring·ai·可观测性·mcp