Google kickstart错误分配问题2020轮A

问题描述 投票:-1回答:1

我正在试用Google kickstart编辑器,由于某种原因,我遇到运行时错误,有人可以帮我吗?这是我第一次尝试Compitetaive编程。

问题有N栋房屋待售。第i座房子要花艾美金购买。您的预算为B美元。

您最多可以购买多少套房屋?

输入输入的第一行给出了测试用例的数量,T。每个测试用例都从包含两个整数N和B的一行开始。第二行包含N个整数。第i个整数是Ai,即第i个房屋的价格。

输出对于每个测试案例,输出一行包含案例#x:y,其中x是测试案例编号(从1开始),而y是您可以购买的最大房屋数量。

限制时间限制:每个测试集15秒。内存限制:1GB。1≤T≤100。1≤B≤105。对于所有i,1≤Ai≤1000。

测试集11≤N≤100。

测试集21≤N≤105。

Sample output input

  import java.util.*;

class sample{ 
public static void main(String[] args) {

Scanner sc=new Scanner(System.in);
int no=sc.nextInt();

for(int j=0;j<no;j++) {

int n=sc.nextInt();
int b=sc.nextInt();
int[] a=new int[n];

for(int i=0;i<n;i++) {
    a[i]=sc.nextInt();
}

int sum=0;
int count=0;
for(int i=0;i<n;i++) {
    if(sum<b) {
        sum+=a[i];
        if(sum>b) {
            sum-=a[i];
            count--;
        }
        count++;
    }
}

System.out.println("case #"+(j+1)+": "+count);
}
}
}
java runtime-error editor kickstarter
1个回答
0
投票

经历过,兄弟,我已经解决了

import java.util.Collections;
import java.util.Scanner;
class Solution {
    private static long N;
    private static long A;
    private static long B;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
           N = sc.nextInt();
        for (long i = 0; i < N; i++) {
            A = sc.nextInt();
            B = sc.nextInt();
            ArrayList<Integer> houses = new ArrayList<Integer>();
            for (long j = 0; j < A; j++) {
            houses.add(sc.nextInt());
            }
            long no_of_houses = findTheHouses(houses,B);
            System.out.println("Case #"+ (i+1) +": "+no_of_houses);

        }

        sc.close();
    }

    private static long findTheHouses(ArrayList<Integer> houses, long max_cost) {
        Collections.sort(houses);
        long count_budget =0;
        int houses_count=0;
        do{
                count_budget = count_budget +houses.get(houses_count);
            if(count_budget<=max_cost)
                houses_count++;
                else
                break;
        }while(houses.size()>houses_count);

    return houses_count;    
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.