Problem14

package com.shui.mu.yao.io.algorithm;

public class Problem14 {

public static void main(String[] args) {
long starttime = System.currentTimeMillis();
int start = 640000;/**10:123456789往上翻20再翻40..->640000--1280000*/
int end = 1000000;
int[] seed = new int[end];
int max = 0;
int digit = 0;
/**预热10W数据到arr里面 存储seed值*/
for (int i = 2; i < 10000; i++) {
find(end, seed, i);
}
for (int i = start; i < end; i++) {
int number=find(end, seed, i);
if (number > max) {
max = number;
digit = i;
}
}
System.out.println("digit: "+digit+"\t"+"maxCount:"+max);
System.out.println(System.currentTimeMillis() - starttime);


}

private static int find(int end, int[] seed, int i) {
long count = i;
int number = 0;
if(seed[i]>0)
return seed[i];
while (count != 1) {
if(count<end&&seed[(int) count]>0)
{
number+=seed[(int) count];
break;
}
if ((count & 0X0001) == 0) {
count = count >> 1;
} else {
count = (count << 1) + 1 + count;
}
number++;
}
seed[i]=number;
return number;
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值