百度笔试 java 3.14
百度笔试 java 3.14
第一题硬刚 100% #百度##笔试题目#
第二题A了 60% 只考虑了两两组合 还可以大于两两
import java.util.Scanner; public class Main2 { public static double solution(int n, double m, double[][] arr){ if (n<1 || n>20 || m<1 || m>1e9) return 0; for (int i = 0; i<n; i++){ if (arr[i][0]<1 || arr[i][0]>1e9 || arr[i][1]<1 || arr[i][1]>1e6) return 0; } double count = 0; for (int i = 0; i<n; i++){ if (arr[i][0]>m){ count += arr[i][1]; arr[i][0] = 0; } } for (int i = 0; i<n; i++){ if (arr[i][0] != 0 && arr[i][1] !=0){ double min = minnum(n,arr)[0][0]; double num = arr[(int)minnum(n,arr)[0][1]][1]; if (arr[i][0]+min>=m){ double temp = Math.min(num,arr[i][1]); count += temp; if (arr[(int)minnum(n,arr)[0][1]][1] - temp >= 0) arr[(int)minnum(n,arr)[0][1]][1] -= temp; if (arr[i][1] - temp >= 0) arr[i][1] -= temp; } } } for (int i = 0; i<n; i++){ if (arr[i][0] != 0 && arr[i][1] !=0){ count += (int)((arr[i][0]*arr[i][1]) / m); } } return count; } public static double[][] minnum(int n, double[][] arr){ double[][] res = new double[1][2]; double min = 1e9; int index = 0; for (int i = 0; i<n; i++){ if (arr[i][1] != 0 && arr[i][0] != 0){ if (arr[i][0]<min){ min = arr[i][0]; index = i; } } } res[0][0] = min; res[0][1] = index; return res; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); double m = sc.nextInt(); double[][] arr = new double[n][2]; for (int i = 0; i<n; i++){ arr[i][0] = sc.nextInt(); arr[i][1] = sc.nextInt(); } System.out.println((int)solution(n, m ,arr)); } }
第一题硬刚 100%
import java.util.Scanner; public class Main { public static int solution(int n, int k, int[] arr){ if (n<1 || n>1000 || k<1 || k>1000) return 0; int count = 0; boolean flag = false; for (int i = 0; i<n; i++){ if (arr[i] != 0){ flag = false; for (int j = i+1; j<n; j++){ if (arr[j] == arr[i]){ arr[j] = 0; flag = true; count++; break; } } } if (!flag){ count++; flag = true; } } return count; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i<n; i++){ arr[i] = sc.nextInt(); } System.out.println(solution(n, k ,arr)); } }纪念我第一次发帖 略显羞涩