java - 奇怪的计数器 - HackerRank
问题描述
这是问题的链接: https ://www.hackerrank.com/challenges/strange-code/problem
static long strangeCounter(long t) {
long i,c=1;
long cl=2;
HashMap<Long,Long> map = new HashMap<Long,Long>();
while(c>t){
if(cl<3){
cl=3;
}else{
cl=cl*2;
}
for(i=cl;i>0;i--){
map.put(c,cl);
c++;
//if(c>t) break;
}
}
System.out.println(map); //For debug... It is printing {}
return map.get(t);
}
当我试图将时间计数器存储在地图中时,此哈希图显示为 null。为什么显示为空?
解决方案
地图不为空,它是空的。地图是空的,因为里面没有放任何东西。
如果该值为
t
1 或更大,那么您永远不会进入while
循环。这会产生一个空地图。如果值为
t
0(或更小),您将永远不会产生答案,因为 while 循环将永远不会(优雅地)结束,因为您只会增加c
并且t
永远不会改变。
推荐阅读
- c# - 创建依赖于 netstandard 包的 netcore 3.0 项目的 NuGet 包
- spring-boot - openapi 3.0 中所有 API 的强制标头
- javascript - ReactJs 道具在 componentDidMount 中返回未定义
- ios - 如何在 Xcode 项目中使用 C 库?
- image - 在 SwiftUI 中使用 PencilKit 将绘图转换为图像
- sas - 比较 SAS 中不同版本的 PDF 文档
- java - 使用 @Query 调用存储过程会导致异常:调用 ProcedureName 时参数的数量或类型错误
- return - 中断 LPC 微控制器上的寄存器写操作
- javascript - 跨浏览器 3D 动画
- load-balancing - 两个基于 4G 加密狗的 ISP 需要负载平衡路由器