关注
第三题一开始暴力遍历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;
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 职场捅娄子大赛 #
292087次浏览 2782人参与
# 晒一下我的毕业照 #
20502次浏览 151人参与
# 华泰证券Fintech星战营 #
163760次浏览 185人参与
# 华为求职进展汇总 #
4618995次浏览 28140人参与
# 好好告别我的学生时代 #
10274次浏览 193人参与
# 一人一个landing小技巧 #
52434次浏览 856人参与
# 机械人,签完三方你在忙什么? #
47940次浏览 211人参与
# 简历无回复,你会继续海投还是优化再投? #
66798次浏览 690人参与
# 产品人专业大盘点 #
45258次浏览 293人参与
# 如何KTV领导 #
54557次浏览 409人参与
# 运营来爆料 #
42490次浏览 319人参与
# 互联网行业现在还值得去吗 #
16130次浏览 53人参与
# 你的秋招第一面感觉怎么样 #
69298次浏览 554人参与
# 嵌入式岗知多少 #
38517次浏览 424人参与
# 秋招最大的收获是什么? #
31626次浏览 287人参与
# 来聊聊机械薪资天花板是哪家 #
121365次浏览 735人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
84617次浏览 647人参与
# 记录实习开销 #
9387次浏览 67人参与
# 如果不工作真的会快乐吗 #
115672次浏览 941人参与
# 应届生应该先就业还是先择业 #
105379次浏览 623人参与
# 节后第一天上班,我的精神状态 #
8492次浏览 72人参与