标题
整数数组找到所有符合x=y+z的组合
题目描述
x,y,z是一个整数数组的三个不同的元素,找到所有符合x=y+z的组合。用某种编程语言实现(java或javascript优先),并简述算法。在实现题目要求的基础上尽可能地使用更优的算法。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// Scanner input=new Scanner(System.in);
// String str=input.next();
System.out.println("hello world");
int[] nums = {0,1,2,3,4,6,7};
List<List<Integer>> lists = getDemo(nums);
for (List<Integer> list: lists){
System.out.println(list);
}
}
public static List<List<Integer>> getDemo(int[] nums){
List<List<Integer>> lists = new ArrayList<>();
Map<Integer,Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
map.put(nums[i], i);
}
for (int i = 0; i < nums.length; i++) {
for (int j = i+1; j < nums.length; j++) {
int sum = nums[i] + nums[j];
if(map.containsKey(sum) && map.get(sum) != i && map.get(sum) != j){
List<Integer> comIntegers = new ArrayList<>();
comIntegers.add(nums[i]);
comIntegers.add(nums[j]);
comIntegers.add(sum);
lists.add(comIntegers);
}
}
}
return lists;
}
}