Всегда '-1 Output', в HackerRank "Магазин электроники" Вопрос - PullRequest
0 голосов
/ 05 июня 2019

Это ссылка на вопрос https://www.hackerrank.com/challenges/electronics-shop/problem

Это мой код, он пропускает некоторые случаи, но немногие выходные данные неверны, потому что он возвращает «-1» в качестве выхода для каждого входа.

import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        //Getting Input from the User
        int budget = scan.nextInt();
        int key_no = scan.nextInt();
        int usb_no = scan.nextInt();

        // Assigning some random value
        int maxkey = 0;
        int usbmax = 0;

        // Storing Cost of Keyboards in array
        int[] key_array = new int[key_no];
        for(int i=0;i<key_no;i++){
            key_array[i] = scan.nextInt();

            if(key_array[i] >= maxkey){
                maxkey = key_array[i];
            }
        }

        // Storing Cost of USB in array
        int[] usb_array = new int[usb_no];
        for(int j=0;j<usb_no;j++){
            usb_array[j] = scan.nextInt();

            if(usb_array[j] > maxkey){
                usbmax = usb_array[j];
            }
        }

        if(budget >= (maxkey+usbmax)){
            System.out.println(maxkey+usbmax);
        }
        else{
            System.out.println("-1");
        }

    }
}

10 2 3 (бюджет, key_no, usb_no)

3 1 (расходы на клавиатуру)

5 2 8 (Стоимость USB)

Ожидаемый ответ: «9». Но вывод: '-1'

1 Ответ

0 голосов
/ 05 июня 2019

Недостаточно проверить, меньше ли сумма максимальной цены каждого предмета, чем бюджет. Следует проверить все возможные комбинации.

int max_price = -1;

for(int key_price: key_array){
    for(int usb_price: usb_array){
        int total = key_price + usb_price;
        if(total <= budget && total > max_price){
            max_price = total;
        }
    }
}
System.out.println(max_price);

Приведенное выше решение не может быть оптимальным решением. Но он будет служить цели, пока key_no и usb_no не слишком велики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...