我只是想查看一个数组并找到总和为目标数字的元素。我已经深入到程序中了:
public class App {
public static void main(String[] args) throws Exception {
int[] numbers = {3, 6, 2, 9};
int targNum = 5;
twoSum(numbers, targNum);
}
public static void twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
int sum = 0;
if (nums[i] <= target) {
int[] sumNums = {target - nums[i]};
for (int j = 0; j < sumNums.length; j++) {
sum += sumNums[j];
System.out.println(sum);
}
}
}
}
}
我不断收到控制台输出:2
3
我在另一个文件中运行了一个简单的数组 sum,它似乎工作得很好。
最佳答案
您应该使用 Set
只查看给定数组一次。
public class App {
public static void main(String[] args) throws Exception {
int[] numbers = { 3, 6, 2, 9 };
int targNum = 5;
twoSum(numbers, targNum);
}
public static void twoSum(int[] nums, int target) {
Set<Integer> unique = new HashSet<>();
for (int a : nums) {
int b = target - a;
if (unique.contains(b)) {
System.out.println(a + " " + b);
return;
}
unique.add(a);
}
System.err.println("not found");
}
}
关于java - 如何将数组的元素相加到目标数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66480625/