大哥们 小弟又来了 zoj1180 memory limit exceeded

无她无命 2019-09-10 04:28:59
原题地址:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827364679
小弟的代码:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static int sum(int in){

int sum = in;
while (in > 0){
sum += in%10;
in /= 10;
}
return sum;
}

public static void main(String[] args) {
List<Integer> generator = new ArrayList<Integer>();
int flag = 0;
for (int i = 1; i <= 1000000; i++){
if (!generator.contains(i)) System.out.println(i);
if (generator.size() < 60) generator.add(sum(i));
else{
flag = flag%60;
generator.set(flag++, sum(i));
}
//System.out.println(generator.size());
}

}

}

这题看上去是个水题,但这100w的范围也太大了。。 我怎么改都是内存溢出,最近用java做题总是内存溢出。。。有没有大哥教教小弟
...全文
146 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
无她无命 2019-09-10
  • 打赏
  • 举报
回复
引用 3 楼 wowpH 的回复:
			int num = sum(i);
if (num <= 1000000) {
arr[sum(i)] = true;
}
卧槽大哥牛逼 试了一次 成了
无她无命 2019-09-10
  • 打赏
  • 举报
回复
引用 1 楼 着急下班 的回复:
你这个代码我运行了一次,为啥不内存溢出。
我本地测试大概内存占用40m。。但是zoj上这道题限制32m
wowpH 2019-09-10
  • 打赏
  • 举报
回复
			int num = sum(i);
if (num <= 1000000) {
arr[sum(i)] = true;
}
wowpH 2019-09-10
  • 打赏
  • 举报
回复
引用 1 楼 着急下班 的回复:
你这个代码我运行了一次,为啥不内存溢出。
可以用 boolean[]
立刀流 2019-09-10
  • 打赏
  • 举报
回复
你这个代码我运行了一次,为啥不内存溢出。

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧