关注
第三题一开始暴力遍历30天,结果用例过了,但是提交超时。优化了一下就过了,没搞懂第二种为什么过,复杂度不都是o(n)? 超时的写法 import java.util.Scanner;
public class Main {
private static final byte TEST = 1;
private static final String INPUT =
"4\n"
+ "0 10\n"
+ "1 2 3 4 5 6 7 8 9 10\n"
+ "1 15\n"
+ "1 3 5 7 9 11 13 15 17 19 21 23 25 27 29\n"
+ "1 7\n"
+ "5 9 13 17 21 25 29\n"
+ "1 0\n"
+ "\n";
public static void main(String[] args) {
Scanner scanner = TEST == 1 ? new Scanner(INPUT) : new Scanner(System.in);
int t = scanner.nextInt();
for (int i = 0; i < t; i++) {
int k = scanner.nextInt();
int m = scanner.nextInt();
scanner.nextLine();
int[] day = new int[31];
int count = m;
for (int j = 0; j < m; j++) {
int d = scanner.nextInt();
day[d] = 1;
int left = d - k > 0 ? d - k : 0;
int right = d + k < 30 ? d + k : 30;
for (int q = left; q <= right; q++) {
if (day[q] != 1) {
day[q] = 2;
}
}
}
scanner.nextLine();
int cur = 1;
while (cur <= 30) {
if (day[cur] == 0) {
if (cur + k <= 30 && day[cur + k] != 1) {
count++;
cur += k + 1;
}
} else {
cur++;
}
}
System.out.println(count);
}
// }
scanner.close();
}
}
AC的写法 import java.util.Scanner;
public class Main {
private static final byte TEST = 0;
private static final String INPUT =
"4\n"
+ "0 10\n"
+ "1 2 3 4 5 6 7 8 9 10\n"
+ "1 15\n"
+ "1 3 5 7 9 11 13 15 17 19 21 23 25 27 29\n"
+ "1 7\n"
+ "5 9 13 17 21 25 29\n"
+ "1 0\n"
+ "\n";
public static void main(String[] args) {
Scanner scanner = TEST == 1 ? new Scanner(INPUT) : new Scanner(System.in);
int t = scanner.nextInt();
for (int i = 0; i < t; i++) {
int k = scanner.nextInt();
int m = scanner.nextInt();
int[] num = new int[m + 1];
num[m] = 31 + k;
for (int j = 0; j < m; j++) {
num[j] = scanner.nextInt();
}
System.out.println(solve(k, m, num));
}
scanner.close();
}
private static int solve(int k, int m, int[] num) {
int count = m;
int cur = 1;
for (int i = 0; i <= m; i++) {
if (cur <= num[i]) {
int tmp = (num[i] - cur) / (k + 1);
cur = num[i] + k + 1;
count += tmp;
} else if (cur > 30) {
break;
}
}
return count;
}
}
查看原帖
点赞 评论
相关推荐
05-11 11:48
河南大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 职场捅娄子大赛 #
272374次浏览 2431人参与
# 如何KTV领导 #
50714次浏览 390人参与
# 华泰证券Fintech星战营 #
10831次浏览 143人参与
# 华为求职进展汇总 #
4604462次浏览 28075人参与
# 如果不工作真的会快乐吗 #
111627次浏览 924人参与
# 一人一个landing小技巧 #
47851次浏览 818人参与
# 互联网行业现在还值得去吗 #
13043次浏览 48人参与
# 节后第一天上班,我的精神状态 #
5586次浏览 69人参与
# 2025,我想...... #
42695次浏览 429人参与
# 00后45度躺现状 #
88794次浏览 454人参与
# 租房前辈的忠告 #
161565次浏览 6189人参与
# 应届生应该先就业还是先择业 #
102565次浏览 622人参与
# 产品实习,你更倾向大公司or小公司 #
147704次浏览 1921人参与
# 校招入职后的感受 #
264795次浏览 2629人参与
# 职场上哪些行为很加分? #
188018次浏览 2312人参与
# 产品人专业大盘点 #
42568次浏览 292人参与
# 秋招最大的收获是什么? #
28960次浏览 286人参与
# 简历无回复,你会继续海投还是优化再投? #
63486次浏览 682人参与
# 运营人求职交流聚集地 #
130205次浏览 972人参与
# 扒一扒那些奇葩实习经历 #
54546次浏览 846人参与
# 嵌入式岗知多少 #
35374次浏览 419人参与