用心的coderG了 level
获赞
98
粉丝
36
关注
169
看过 TA
1149
门头沟学院
2026
Java
IP属地:北京
暂未填写个人简介
私信
关注
03-29 19:49
门头沟学院 Java
两道编程,不难。题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;}}
投递哔哩哔哩等公司8个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务