oj赛氪算法练习

开关灯2

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

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();

        ArrayList<Integer> result = findClosedLamps(N);

        // 输出结果
        for (int i : result) {
            System.out.print(i + " ");
        }
    }

    private static ArrayList<Integer> findClosedLamps(int N) {
        ArrayList<Integer> closedLamps = new ArrayList<>();

        // 初始化数组,全部设置为 true 表示灯都是开着的
        boolean[] lamps = new boolean[N + 1];

        // 开关灯操作
        for (int i = 2; i <= N; i++) {
            for (int j = i; j <= N; j += i) {
                lamps[j] = !lamps[j];
            }
        }

        // 找到关闭的灯的编号
        for (int i = 1; i <= N; i++) {
            if (!lamps[i]) {
                closedLamps.add(i);
            }
        }

        return closedLamps;
    }
}
相关推荐
洛水水8 小时前
【力扣100题】18.随机链表的复制
算法·leetcode·链表
南宫萧幕8 小时前
规则基 EMS 仿真实战:SOC 区间划分与 Simulink 闭环建模全解
算法·matlab·控制
多加点辣也没关系8 小时前
数据结构与算法|第二十三章:高级数据结构
数据结构·算法
庞轩px9 小时前
第七篇:Spring扩展点——如何优雅地介入Bean的创建流程
java·后端·spring·bean·aware·扩展点
代钦塔拉9 小时前
Qt4 vs Qt5 带参数信号槽的连接方式详解
开发语言·数据库·qt
tongluowan00711 小时前
一个请求在Spring MVC 中是怎么流转的
java·spring·mvc
hoiii18711 小时前
孤立森林 (Isolation Forest) 快速异常检测系统
算法
夜郎king11 小时前
Spring AI 对接大模型开发易错点总结与实战解决办法
java·人工智能·spring
InfinteJustice11 小时前
踩坑分享C 语言文件操作全攻略:从基础读写到随机访问与缓冲区原理
c语言·开发语言·microsoft
码云数智-大飞11 小时前
滥用Lombok的@EqualsAndHashCode导致线上事故复盘
开发语言