我开始通过谷歌启动测试我的技能,并选择一个过去的问题来看看它是如何工作的,然后我陷入了困境。
这是我的 Google Kick Start A 2020 计划的 java 代码:分配
我已经通过了所有测试用例并自己进行了测试,但是当我将代码提交给 google kick start 竞赛时,我得到了样品失败:WA我不知道这些问题出了什么问题...请帮助我
这是描述
Problem
有 N 栋房屋待售。第 i 栋房子需要花费艾币购买。您有 B 美元的预算可供花费。
您最多可以购买多少栋房屋?
输入
输入的第一行给出了测试用例的数量,随后是 T.T 测试用例。每个测试用例都以包含两个整数 N 和 B 的单行开始。第二行包含 N 个整数。第 i 个整数是 Ai,即第 i 栋房子的成本。
输出
对于每个测试用例,输出一行包含 Case #x: y,其中 x 是测试用例编号(从 1 开始),y 是您可以购买的最大房屋数量。
限制
时间限制:每个测试集 15 秒。
内存限制:1GB。
1≤T≤100。
1 ≤ B ≤ 10^5。
对于所有 i,1 ≤ Ai ≤ 1000。
测试集1
1≤N≤100。
测试集2
1 ≤ N ≤ 10^5。
样本
Input
Output
3
4 100
20 90 40 90
4 50
30 30 10 10
3 300
999 999 999
案例#1:2
案例#2:3
案例#3:0
在示例案例 #1 中,您的预算为 100 美元。你可以花20+40=60美元购买第一和第三栋房子。
在示例案例 #2 中,您的预算为 50 美元。你可以用30+10+10=50美元购买第一、第三和第四套房子。
在示例案例 #3 中,您的预算为 300 美元。你不能购买任何房子(所以答案是 0)。
注意:与之前的版本不同,在 Kick Start 2020 中,所有测试集都是可见的判决测试集,这意味着您在提交后会收到即时反馈。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
int testCases = sc.nextInt();
int n;
double b;
int[] a;
int count;
for (int i = 1; i <= testCases; i++) {
n = sc.nextInt();
a = new int[n];
b = sc.nextDouble();
for (int j = 0; j < n; j++) {
a[j] = sc.nextInt();
}
Arrays.sort(a);
count = 0;
for (int j = 0; j < n; j++) {
b = b - a[j];
if (b < 0) {
break;
}
count++;
}
System.out.println(String.format("Case #%d :%d", i, count));
}
}
}