gpt4 book ai didi

java - 查找任意两个列表值之和是否等于给定值

转载 作者:行者123 更新时间:2023-12-01 18:37:52 27 4
gpt4 key购买 nike

当我被要求编写一个方法来检查数组列表中的任何对是否等于给定值时,我想出了这个:

import java.util.ArrayList;

public class FindWhetherTwoInArrEqual {

public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(10); arr.add(12);
arr.add(18); arr.add(10);
arr.add(8); arr.add(12);
arr.add(33); arr.add(28);
arr.add(2); arr.add(20);
findWhetherTwoInArraySumToValue(arr, 30);
}
public static boolean findWhetherTwoInArraySumToValue(ArrayList<Integer> array, int value)
{
for(int i = 0; i < array.size(); ++i)
for(int j=i+1; j < array.size(); ++j)
if(array.get(i) + array.get(j) == value)
System.out.println(array.get(i) +" + "+ array.get(j) + " = " + value);
return false;
}
}

结果:

10 + 20 = 30
12 + 18 = 30
18 + 12 = 30
10 + 20 = 30
28 + 2 = 30

时间复杂度为O(n)。

有更有效的方法吗?

最佳答案

你能试试这个代码吗:

 for(int i =0;i< array.size(); ++i){
if(array.contains(value - array.get(i)))
{
System.out.println((value - array.get(i)) +" + "+ array.get(i) + " = " + value);
}
}

关于java - 查找任意两个列表值之和是否等于给定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21078383/

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