网站后台数据分析怎么做,WordPress主题虚拟资源,济南建网站公,优秀网站设计要素问题
等待登机的你看着眼前有老有小长长的队伍十分无聊#xff0c;你突然 想要知道#xff0c;是否存在两个年龄相仿的乘客。每个乘客的年龄用 1个0 到 36500 的整数表示#xff0c;两个乘客的年龄相差 365 以内 就认为是相仿的。 具体来说#xff0c;你有一个长度为 n 的…问题
等待登机的你看着眼前有老有小长长的队伍十分无聊你突然 想要知道是否存在两个年龄相仿的乘客。每个乘客的年龄用 1个0 到 36500 的整数表示两个乘客的年龄相差 365 以内 就认为是相仿的。 具体来说你有一个长度为 n 的数组每个数组元素都是一 个0~ 36500 的整数。
给出q个二元组l,r判断数组在区 间[l,r]上是否存在两个差值小于等于 365 的数
若存在输出 YES否则输出 NO。
输入格式 第一行两个整数 n,q表示乘客数和询问数。 接下来一行 n 个整数表示乘客的年龄。 接下来q行每行两个整数 l,r表示查询。
输出格式 q行每行输出 YES 或者 NO分别表示区间内存在/不存在 年龄相仿的乘客。题目来蓝桥云
解析
这段代码首先读取乘客数 n 和询问数 q。然后它读取乘客的年龄数组 ages。接下来对于每个查询 [l, r]它使用双重循环来查找区间内是否存在两个年龄相仿的乘客。在内部循环中对于每对乘客年龄它计算它们的差值是否小于等于 365。如果找到了满足条件的乘客年龄对就将 found 置为 true并且在最外层循环中跳出。最后根据 found 的值输出相应的结果 YES 或 NO。
请确保输入和输出格式与题目描述一致并注意边界条件的处理例如数组下标和区间的范围。
代码
import java.util.Scanner;public class SimilarAges {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 读取乘客数和询问数int n scanner.nextInt();int q scanner.nextInt();// 读取乘客年龄数组int[] ages new int[n];for (int i 0; i n; i) {ages[i] scanner.nextInt();}// 处理每个查询for (int i 0; i q; i) {// 读取查询的左右边界int l scanner.nextInt();int r scanner.nextInt();// 判断是否存在相似年龄的乘客boolean found false;// 使用双重循环查找区间内的年龄是否相似for (int j l - 1; j r; j) {for (int k j 1; k r; k) {if (Math.abs(ages[j] - ages[k]) 365) {found true;break;}}if (found) {break;}}// 输出结果if (found) {System.out.println(YES);} else {System.out.println(NO);}}scanner.close();}
}