【发布时间】:2019-06-05 16:51:34
【问题描述】:
这是问题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'
【问题讨论】:
-
好吧,因为 11 大于 10,所以您的代码行为正确。给定示例数据和代码,尚不清楚您的问题是什么。 编辑 我简要阅读了链接中的问题描述,从代码的作用来看,您似乎误解了它。我建议你再读一遍
-
if(usb_array[j] > maxkey)... 你的想法会很有趣。 -
问题 1:@Tom 的评论。问题 2:您的代码读取所有值,但只考虑计算的最高价格。
标签: java arrays loops for-loop if-statement