百度笔试 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));
}
}
纪念我第一次发帖 略显羞涩 

查看8道真题和解析