java - 如何将数组的元素相加到目标数?

标签 java arrays sum

我只是想查看一个数组并找到总和为目标数字的元素。我已经深入到程序中了:

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/

相关文章:

java - 我是否需要同时同步方法和对象

java - Jsp中的多个依赖下拉列表

java - 如何使用 Java 的 BigDecimal 正确计算?

php - 按数值排序平面关联数组,然后按非数字键

python - 如何删除重复的数组元素并保留Python中的第一次出现?

C++ 将指针数组传递给函数指针数组时出现问题

excel - 向其添加文本时,求和公式的行为很奇怪

r - 在矩阵中按组(行名称)对列求和

sql - 选择按 id 分组的日期段的列的总和

java - 通过 Spring 连接 mongodb 时创建名称为 'mongoTemplate' 的 bean 时出错