gpt4 book ai didi

java - 对于对角线之和的差异,我收到以下错误

转载 作者:行者123 更新时间:2023-12-02 08:57:47 25 4
gpt4 key购买 nike

我正在尝试求二维数组对角线的差值之和。

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

class Result
{

public static int diagonalDifference(List<List<Integer>> arr)
{
int d1=0,d2=0;
int res;

for(int i=0; i<=arr.size(); i++)
{
for(int j=0; j<=i; j++)
{
if(i==j)
{
d1 = d1+arr.get(i,j);
}
if(i==arr.size()-j-1)
{
d2 = d2+arr.get(i,j);
}
}
}
res=d1-d2;
return res;
}
}
public class Solution
{
public static void main(String[] args) throws IOException
{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

int n = Integer.parseInt(bufferedReader.readLine().trim());

List<List<Integer>> arr = new ArrayList<>();

for (int i = 0; i < n; i++)
{
String[] arrRowTempItems = bufferedReader.readLine()
.replaceAll("\\s+$", "")
.split(" ");

List<Integer> arrRowItems = new ArrayList<>();

for (int j=0; j<n; j++)
{
int arrItem = Integer.parseInt(arrRowTempItems[j]);
arrRowItems.add(arrItem);
}
arr.add(arrRowItems);
}

int result = Result.diagonalDifference(arr);

bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();

bufferedReader.close();
bufferedWriter.close();
}
}

Solution.java:29: error: method get in interface List<E> cannot be applied to given types;

              `d1 = d1+arr.get(i,j);`
^ required: `int`

found: int,int

reason: actual and formal argument lists differ in length

where E is a type-variable:

E extends Object declared in interface List

Solution.java:33: error: method get in interface List<E> cannot be applied to given types;

            `d2 = d2+arr.get(i,j);`
^ required: int

found: int,int

reason: actual and formal argument lists differ in length

where E is a type-variable: E extends Object declared in interface List

最佳答案

你可以重写方法diagonalDifference如下所示:

public static int diagonalDifference(List<List<Integer>> arr) 
{
int d1=0,d2=0;
int res;

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

d1 += arr.get(i).get(i);
d2 += arr.get(i).get(size - i -1);

}
res=d1-d2;
return res;
}

您不需要List<List<Integer>>因为从您的代码中您定义了一个不再修改的 int[][] 数组,因此您可以传递 int[][] array之前定义过。

关于java - 对于对角线之和的差异,我收到以下错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60380839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com