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;
    }
}
相关推荐
雨中飘荡的记忆15 小时前
保证金系统入门到实战
java·后端
Nyarlathotep011315 小时前
Java内存模型
java
CoovallyAIHub15 小时前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing18 小时前
Hot100-Day14-T33搜索旋转排序数组
算法
暮色妖娆丶19 小时前
不过是吃了几年互联网红利罢了,我高估了自己
java·后端·面试
NE_STOP20 小时前
MyBatis-参数处理与查询结果映射
java
会员源码网20 小时前
内存泄漏(如未关闭流、缓存无限增长)
算法
狂奔小菜鸡20 小时前
Day40 | Java中的ReadWriteLock读写锁
java·后端·java ee
颜酱21 小时前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法