gpt4 book ai didi

java - 如何比较ArrayList中的整数元素?

转载 作者:行者123 更新时间:2023-12-02 06:53:38 24 4
gpt4 key购买 nike

我试图通过从三角形中的每一行获取最大数字来解决问题。到目前为止,我能够生成一个三角形,但如何从每一行获取最大数量?

这是我的代码

<br/>
private static Integer solve(Triangle triangle) <br/>
{ <br/>
//triangle is extending an ArrayList <br/>
System.out.println(triangle);<br/>
return 0;<br/>
}

这是迄今为止正在制作的内容:

              6
3 5
9 7 1
4 6 8 4

但现在我想得到的结果是:

“在此三角形中,最大总数为:6 + 5 + 9 + 8 = 26”

这是完整的代码:

public class HellTriangle {
private static final int TRIANGLE_HEIGHT = 10;


public static void start() {
Triangle triangle = generateTriangle();
//System.out.println(triangle);

long start = System.currentTimeMillis();
Integer result = solve(triangle);
long end = System.currentTimeMillis();

System.out.println("Result:" + result);
System.out.println("Resolution time: " + (end - start) + "ms");
}

private static Triangle generateTriangle() {
Triangle triangle = new Triangle();

Random random = new Random();

for (int i = 0; i < TRIANGLE_HEIGHT; i++) {

Row row = new Row();

for (int j = 0; j <= i; j++) {
row.add(random.nextInt(100));
}
triangle.add(row);
}
return triangle;
}

private static class Row extends ArrayList<Integer> {
public String toString() {
StringBuilder sb = new StringBuilder();

for (int i = 0; i < size(); i++) {

sb.append(String.format("%02d", get(i)));
//rows.add(get(i));
if (i < (size() - 1)) {
sb.append(" ");
}
}
return sb.toString();
}
}

private static class Triangle extends ArrayList<Row> {

public String toString() {

// sb is used to make modification to the String
StringBuilder sb = new StringBuilder();

for (int i = 0; i < size(); i++) {

for (int j = 0; j < (TRIANGLE_HEIGHT - 1 - i); j++) {
sb.append(" ");
}

sb.append(get(i));

if (i < (size() - 1)) {
sb.append("\n");
}
}
return sb.toString();
}
}

private static Integer solve(Triangle triangle) {

System.out.println(triangle);
return 0;
}

public static void main(String[] args) {
start();
}
}

如有任何帮助,我们将不胜感激!

最佳答案

在这里,只需更改您的 solve()

private static void solve(Triangle triangle) {

System.out.println(triangle);

ArrayList<Integer> result = new ArrayList<Integer>();
int total = 0;

for(Row row : triangle){
Collections.sort(row);
total += row.get(row.size()-1);
result.add(row.get(row.size()-1));
}

for(Integer intr : result)
System.out.println("Largest elements of the rows: " + intr);
System.out.println("Total: " + total);
}

关于java - 如何比较ArrayList中的整数元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698053/

24 4 0