京东在线笔试交流

9月5号晚京东在线笔试编程题求交流,第一题烽火问题,第二题4、7组成的幸运数字问题,有哪位AC的求分享代码,,,

贴上自己的,n很大时内存溢出
java

import java.util.ArrayList;
import java.util.Scanner;

public class Main2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
int[] a = new int[n];
for(int i=0;i<n;i++){
a[i] = in.nextInt();
}
for(int i=0;i<n;i++){
System.out.println(luckNum(a[i]));
}
}
}
public static String luckNum(int k){
ArrayList<String> res = new ArrayList<String>();
res.add("4");
res.add("7");
if(k<=0)
return null;
if(k==1)
return "4";
if(k==2)
return "7";
int length = 0;
while(res.size()<k){
for(int i=0;i<res.size();i++){
String str = res.get(i);
if(str.length()==length){
res.add("4"+str);
}
}
for(int i=0;i<res.size();i++){
String str = res.get(i);
if(str.length()==length){
res.add("7"+str);
}
}
length++;
}
return res.get(k-1);
}
}

全部评论
输入是long,没发现吧,我也是这个原因RE了。。。。
点赞 回复 分享
发布于 2016-09-05 22:47
爬山+幸运数 http://blog.tk-xiong.com/archives/956 博客访问量走起来~!
点赞 回复 分享
发布于 2016-09-05 22:29
47那个不就是二进制的加法问题么
点赞 回复 分享
发布于 2016-09-05 22:17

相关推荐

每晚夜里独自颤抖:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务