java - 哪个测试用例导致运行时错误?
问题描述
这是 2020 年编码堵塞问题之一,附有下面的链接(回合已完成),虽然我无法重现它,但谷歌引擎报告说即使对于小型测试用例,这也是一个运行时错误。它几乎可以处理我扔给它的任何测试用例。也许我错过了一个边缘案例,但不确定它是什么。
我的理解是这是 O(N) 性能。它真正做的只是检查布尔子数组是否空闲(假),如果是,则将任务分配给该子数组(真),可能进行 2N 次比较。
https://codingcompetitions.withgoogle.com/codejam/round/000000000019fd27/000000000020bdf9
import java.util.*;
import java.io.*;
//Parenting Partnering Returns
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
int t = in.nextInt(); // Scanner has functions to read ints, longs, strings, chars, etc.
for (int ijk = 1; ijk <= t; ++ijk) {
int N = in.nextInt();
String ans;
StringBuilder sb = new StringBuilder();
boolean[] cal = new boolean[1442];
boolean[] jal = new boolean[1442];
int si, se;
boolean canC,canJ, isPossible = true;
for (int i = 0 ; i < N ; i++) {
si = in.nextInt();
se = in.nextInt();
canC = false; canJ = false;
if (cal[si + 1] == false && cal[se] == false || cal[si] == false && cal[se -1] == false) {
for (int j = si ; j <= se; j++) cal[j] = true;
sb.append('C'); canC = true; continue;
} else if (jal[si + 1] == false && jal[se] == false || jal[si] == false && jal[se -1] == false) {
for (int k = si ; k <= se; k++) jal[k] = true;
sb.append('J'); canJ = true; continue;
} else {
isPossible = false;
break;
}
}
ans = sb.toString();
if(isPossible)
System.out.println("Case #" + ijk + ": " + ans);
else System.out.println("Case #" + ijk + ": " + "IMPOSSIBLE");
}
//in.close();
}
}
解决方案
推荐阅读
- android - SMALI HELP - 从资源中获取字符串
- windows - 如何运行 Windows 驱动程序示例(示例 DMFT0)?
- python - 检查列表中的正则表达式时出错(python)
- aws-lambda - DynamoDB 在 Javascript SDK 上使用错误的键和值位置保存 json 对象
- common-table-expression - 将递归 CTE 从 SQL Server 重写为 Clickhouse
- ios - SwiftUI 使 Image 的内容响应属性更新
- azure - Azure 平台(文件服务器升级)导致我的 Web 应用重新启动
- python - tf.linalg.svd 可以在 Keras 的自定义损失函数中使用吗?
- java - JavaFX:我需要将事件处理程序中的值设置为变量
- masstransit - Masstransit:路线单活动和传奇活动之间的区别