Java 是否可以在我的方法中返回多个项?
我已经写了三种不同Big-O复杂性的方法。有没有一种方法可以在不影响复杂性的情况下返回多个值?提前谢谢Java 是否可以在我的方法中返回多个项?,java,return,time-complexity,Java,Return,Time Complexity,我已经写了三种不同Big-O复杂性的方法。有没有一种方法可以在不影响复杂性的情况下返回多个值?提前谢谢 public static double Nsquare(double[] ar){ double max=0, difference=0; double maxelement=0, minelement=0 ; for (int i=0; i<ar.length;++i){ for (int j=0; j<ar.length;++j){
public static double Nsquare(double[] ar){
double max=0, difference=0;
double maxelement=0, minelement=0 ;
for (int i=0; i<ar.length;++i){
for (int j=0; j<ar.length;++j){
difference=Math.abs(ar[i]-ar[j]);
if (difference>max){
max=difference;
maxelement=ar[i];
minelement=ar[j];
}
}
}
//return maxelement;
//return minelement;
return max;
}
// O(n*log(n))
public static double NlogN(double[] ar){
Arrays.sort(ar);
double max=ar[ar.length-1];
double min=ar[0];
double difference=max-min;
//return max;
//return min;
return difference;
}
// O(n)
public static double N(double[] ar){
double max = Double.NEGATIVE_INFINITY;
double min = Double.POSITIVE_INFINITY;
for(double x: ar){
if(min > x) {min =x;}
if(max < x) {max =x;}
}
//return max;
//return min;
return Math.abs(max-min);
}
公共静态双N方(双[]ar){
双倍最大值=0,差值=0;
双maxelement=0,minelement=0;
对于(inti=0;ix){min=x;}
如果(max
否不可能返回多个项目。但是,您可以为这些项目创建一个对象,并且可以返回它。在java中,您不能单独返回多个值。您可以做的是,添加所有要返回到列表的值,然后返回对列表的引用
大概是这样的:
List<Double> doubleList = new ArrayList<>();
doubleList.add(max); // index 0
doubleList.add(maxelement); // index 1
doubleList.add(minelement); // index 2
return doubleList;
List doubleList=new ArrayList();
双重列表。添加(最大);//索引0
doubleList.add(maxelement);//指标1
双重列表。添加(minelement);//指标2
返回双重列表;
您必须更改方法签名以及该方法的调用方式。只需编写一个包含字段max、maxelement和minelement的新类。将此类设置为返回类型
class Answer{
private double max;
private double maxelement;
private double minelement;
public Answer(double max, double maxelement, double minelement){
this.max = max;
this.maxelement = maxelement;
this.minelement = minelement;
}
public double getMax() {
return max;
}
public double getMaxelement() {
return maxelement;
}
public double getMinelement() {
return minelement;
}
}
然后像这样返回:
public static Answer Nsquare(double[] ar){
--
your code
--
return new Answer(max, maxelement, minelement);
}
看起来你的思路是对的,但是你需要扩展你的答案,并扩展到betterHi,这不会影响方法的复杂性吗?不会。一点也不。添加到
ArrayList
是O(1)
因此,如果要添加k
要返回的值,k
独立于n
。因此,您的时间复杂性不会改变:)使用Map而不是List,因为您可以通过使用Map键轻松访问值。地图