每日一算法

问题

等待登机的你看着眼前有老有小长长的队伍十分无聊,你突然 想要知道,是否存在两个年龄相仿的乘客。每个乘客的年龄用 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"

请确保输入和输出格式与题目描述一致,并注意边界条件的处理,例如数组下标和区间的范围。

代码

java 复制代码
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();
    }
}
相关推荐
qqxhb1 小时前
零基础数据结构与算法——第四章:基础算法-排序(上)
java·数据结构·算法·冒泡·插入·选择
FirstFrost --sy3 小时前
数据结构之二叉树
c语言·数据结构·c++·算法·链表·深度优先·广度优先
森焱森3 小时前
垂起固定翼无人机介绍
c语言·单片机·算法·架构·无人机
搂鱼1145143 小时前
(倍增)洛谷 P1613 跑路/P4155 国旗计划
算法
Yingye Zhu(HPXXZYY)3 小时前
Codeforces 2021 C Those Who Are With Us
数据结构·c++·算法
无聊的小坏坏5 小时前
三种方法详解最长回文子串问题
c++·算法·回文串
长路 ㅤ   5 小时前
Java后端技术博客汇总文档
分布式·算法·技术分享·编程学习·java后端
秋说5 小时前
【PTA数据结构 | C语言版】两枚硬币
c语言·数据结构·算法
qq_513970445 小时前
力扣 hot100 Day37
算法·leetcode
不見星空6 小时前
leetcode 每日一题 1865. 找出和为指定值的下标对
算法·leetcode