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;
    }
}
相关推荐
带刺的坐椅3 分钟前
Solon AI Skills 会是 Agent 的未来吗?
java·agent·langchain4j·solon-ai
夏鹏今天学习了吗6 分钟前
【LeetCode热题100(87/100)】最小路径和
算法·leetcode·职场和发展
jacGJ9 分钟前
记录学习--文件读写
java·前端·学习
哈哈不让取名字19 分钟前
基于C++的爬虫框架
开发语言·c++·算法
花间相见22 分钟前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
扶苏-su41 分钟前
Java---Properties 类
java·开发语言
cypking1 小时前
四、CRUD操作指南
java
2301_780669862 小时前
文件字节流输出、文件复制、关闭流的方法
java
一条咸鱼_SaltyFish2 小时前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发
Lips6112 小时前
2026.1.20力扣刷题笔记
笔记·算法·leetcode