bilibili0329笔试
两道编程,不难。
题1:
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
String[] nk = in.nextLine().split(" ");
int n = Integer.parseInt(nk[0]);
int k = Integer.parseInt(nk[1]);
int[] nums = new int[n];
String[] numStr = in.nextLine().split(" ");
for (int i = 0; i < n; i++) {
nums[i] = Integer.parseInt(numStr[i]);
}
System.out.println(maxDiffSum(nums, n, k));
}
private static long maxDiffSum(int[] nums, int n, int k) {
long ans = 0;
Arrays.sort(nums);
int pairNum = Math.min(n - k, k);
for(int i = 0; i < pairNum; i++) {
ans += nums[n - i - 1] - nums[i];
}
return ans;
}
}
题2:
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
String[] nmk = in.nextLine().split(" ");
int n = Integer.parseInt(nmk[0]);
int m = Integer.parseInt(nmk[1]);
int k = Integer.parseInt(nmk[2]);
System.out.println(cal(n, m, k));
}
private static int cal(int n, int m, int k) {
// 需要保证至少分到一个
if (m < n) return 0;
int ans = 1;
m -= n;
int l = k - 1, r = k - 1;
while (true) {
int need = r - l + 1;
m -= need;
if (m < 0) break;
ans++;
r = r == n - 1 ? r : r + 1;
l = l == 0 ? l : l - 1;
}
return ans;
}
}
#b站##笔试#
题1:
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
String[] nk = in.nextLine().split(" ");
int n = Integer.parseInt(nk[0]);
int k = Integer.parseInt(nk[1]);
int[] nums = new int[n];
String[] numStr = in.nextLine().split(" ");
for (int i = 0; i < n; i++) {
nums[i] = Integer.parseInt(numStr[i]);
}
System.out.println(maxDiffSum(nums, n, k));
}
private static long maxDiffSum(int[] nums, int n, int k) {
long ans = 0;
Arrays.sort(nums);
int pairNum = Math.min(n - k, k);
for(int i = 0; i < pairNum; i++) {
ans += nums[n - i - 1] - nums[i];
}
return ans;
}
}
题2:
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
String[] nmk = in.nextLine().split(" ");
int n = Integer.parseInt(nmk[0]);
int m = Integer.parseInt(nmk[1]);
int k = Integer.parseInt(nmk[2]);
System.out.println(cal(n, m, k));
}
private static int cal(int n, int m, int k) {
// 需要保证至少分到一个
if (m < n) return 0;
int ans = 1;
m -= n;
int l = k - 1, r = k - 1;
while (true) {
int need = r - l + 1;
m -= need;
if (m < 0) break;
ans++;
r = r == n - 1 ? r : r + 1;
l = l == 0 ? l : l - 1;
}
return ans;
}
}
#b站##笔试#
全部评论
哎呀第一题,烦死了,没看到用long啊
请问可以用cpp打吗?
第一道题原来的用long,怪不得不能全部通过
相关推荐
点赞 评论 收藏
分享
哇哇的菜鸡oc:1.为什么要写这么多内容呀
2.什么叫做简历
3.什么样的内容可以写到简历上
4.项目可以包装,但是要有理有据呀,不能乱包装呀,比如
跨境能达到日均120万订单的在国内都是能叫的上名字的,而且这些工作也基本上不太会交给一个实习生去做
建议友友可以去网上或者找同学的简历看看,他们的简历是怎么写的,去找找上面的那四个问题的答案吧,然后要记住的是Java是服务于业务的,而不是服务于微服务或者技术的 点赞 评论 收藏
分享