可以用数组吗

23级邓振宇2023024252 发表于 1年前 · 关联问题 清扫房间

这个不能用数组存储每个房间吗,回到原点时候推出循环,然后再遍历数组看有没有没打扫的房间,这样写运行错误,数组上限了

lr580 发表于 1年前

我认为你应该对时间复杂度和空间复杂度有所了解。

在你的 Java 代码里,使用了 int arr[] = new int[k];

已知一个 int 占用 4b = 0.5B,根据题目可知 2\le k\le 10^{10},考虑最差情况,即 k=10^{10},那么,该数组 arr 的大小是:

10^{10}\cdot 0.5 B = 10^{10}\cdot 0.5\div 2^{30} GB\approx 4.66 GB

且不考虑判题机是否有这么多内存。根据题目描述,可知空间限制为 128MB,所以结果要么是内存超限、要么是运行超时(申请这么大的数组需要时间)、要么是运行出错(申请内存失败)。

23级邓振宇2023024252 发表于 1年前

噢噢好的,谢谢