**已关闭。**此问题需要debugging details。目前不接受回答。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
2天前关闭。
Improve this question的
给定一个整数二维数组A[1..5, 1..5]
,找到最大的K
,使得在数组的任何一行中,都存在大于或等于K
的元素。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws FileNotFoundException {
Scanner scan = new Scanner(new File("input.txt"));
PrintStream out = new PrintStream(new File("output.txt"));
// Create a 2D array to store the input data
int[][] array = new int[5][5];
// Read data from the input file into the 2D array
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
array[i][j] = scan.nextInt();
}
}
// Find the maximum K
int maxK = Integer.MIN_VALUE;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (array[i][j] > maxK) {
maxK = array[i][j];
}
}
}
// Write the result to the output file
out.println(maxK);
}
}
字符串
我写了一个程序,错误地解决了这个问题,我需要帮助。就我对这个任务的理解,我需要找到阈值,在该阈值以上有等于或大于这个阈值的数字,但我不知道如何解决它。
下面是一个测试用例,用于验证我的代码是否错误地解决了问题:
input.txt:
6 7 9 4 5
7 0 2 5 6
5 7 -7 1 7
5 2 2 8 4
1 3 3 4 5
型
预期产出:
5
型
然而,我的程序给出了以下输出:9
请帮助我解决这个问题。
3条答案
按热度按时间cotxawn71#
你的
maxK
是数组的整体最大值(即所有元素)。但是对于你的任务,你必须找到每行的最大值。然后K
是这些元素中的最小值。字符串
mccptt672#
这个问题很简单,你只需要找到每一行的
max
数,然后找到所有max
数的min
值。这个问题可以用时间
O(N)
来解决。字符串
cbeh67ev3#
首先,请确保关闭 Closeable 对象。
一个典型的方法是使用 *try-with-resources**语句。
字符串
遍历 * 数组 *,并在每个元素上遍历。
型
这里是完整的重构因子。
型
为了演示,这里有一个使用 stream 的例子。
型