我输错了。我为每种情况输出0作为输出。我知道这是因为错误使用了变量范围。限制元素应仅被声明为私有。
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
class Difference {
private int[] elements;
public int maximumDifference;
// Add your code here
Difference(int elements[])
{
this.elements = elements;
}
int computeDifference()
{
int maximumDifference=0;
int l=elements.length;
for(int i=0; i<l; i++)
{
for(int j=i+1; j<l; j++)
{
if (Math.abs(elements[i]-elements[j]) > maximumDifference){
maximumDifference = (Math.abs(elements[i]-elements[j]));
}
}
}
return maximumDifference;
}
}
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
sc.close();
Difference difference = new Difference(a);
difference.computeDifference();
System.out.print(difference.maximumDifference);
}
}
答案 0 :(得分:0)
下次请缩进代码。
您只需要在int
中删除maximumDifference
类型到computeDifference()
,因为在该方法中,您将覆盖之前声明的类字段,当您调用时,它仍然等于0方法。
另一种解决方案只是在你的主要System.out.print(difference.computeDifference());
,因为computeDifference()
返回其范围内的变量,具有正确的值。
答案 1 :(得分:0)
您只需要进行一次更改。将difference.computeDifference()
方法调用的结果分配给变量difference.maximumDifference
:
difference.maximumDifference= difference.computeDifference();
System.out.print(difference.maximumDifference);