Tôi đang làm việc trên một vấn đề mà tôi đã in số tiền lớn nhất trong số tất cả các đồng hồ cát trong mảng. Bạn có thể tìm thấy những thông tin chi tiết về vấn đề này here-Java - Làm thế nào để giải quyết kính 2D Array Hour này?
gì tôi đã cố gắng:
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int arr[][] = new int[6][6];
for (int arr_i = 0; arr_i < 6; arr_i++) {
for (int arr_j = 0; arr_j < 6; arr_j++) {
arr[arr_i][arr_j] = in.nextInt();
}
}
int sum = 0;
int tmp_sum = 0;
for (int arr_i = 0; arr_i < 4; arr_i++) {
for (int arr_j = 0; arr_j < 4; arr_j++) {
if (arr[arr_i][arr_j] > 0) {
sum = sum + (arr[arr_i][arr_j]) + (arr[arr_i][arr_j + 1]) + (arr[arr_i][arr_j + 2]);
sum = sum + (arr[arr_i + 1][arr_j + 1]);
sum = sum + (arr[arr_i + 2][arr_j]) + (arr[arr_i + 2][arr_j + 1]) + (arr[arr_i + 2][arr_j + 2]);
if (tmp_sum < sum) {
tmp_sum = sum;
}
sum = 0;
}
}
}
System.out.println(tmp_sum);
}
}
Input:
1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0
0 9 2 -4 -4 0
0 0 0 -2 0 0
0 0 -1 -2 -4 0
Output:
12
Output dự kiến:
13
Tôi không biết nơi tôi đang làm sai. Tôi không thể hiểu tại sao sản lượng dự kiến là 13
. Theo mô tả được đưa ra trong bài toán, nó phải là 10
. Đây có phải là một câu hỏi sai hoặc sự hiểu biết của tôi về điều này là sai?
Cảm ơn fro đề xuất của bạn và trả lời ... Nó đã giúp tôi rất nhiều. – RajSharma
@Stun_Gravy Bởi vì '<4' có nghĩa là giá trị lớn nhất là' 3' và đồng hồ cát đi lên đến '+ 2' để max là' 5', điều này xảy ra là chỉ số tối đa trong mảng có kích thước '6'. Không biết những gì bạn có ý nghĩa bởi * "kích thước mảng không được chỉ định" *, vì bạn không thể phân bổ một mảng mà không đưa ra một kích thước. – Andreas
@Stun_Gravy Tôi vừa gửi nó và đã vượt qua tất cả 8 trường hợp kiểm tra, vì vậy tôi không biết bạn đang nói về điều gì. – Andreas