【问题标题】:Two Sum LeetCode Problem: Brute force solution approach not working?二和 LeetCode 问题:蛮力解决方法不起作用?
【发布时间】:2020-02-16 22:26:43
【问题描述】:

给定一个整数数组,返回两个数字的索引,使它们相加为特定目标。

您可以假设每个输入都只有一个解决方案,并且您不能两次使用相同的元素。

例子:

给定 nums = [2, 7, 11, 15],目标 = 9,

因为 nums[0] + nums[1] = 2 + 7 = 9, 返回 [0, 1]。

我正在尝试一种蛮力方法来解决这个问题——使用整数 i 遍历数组的每个元素,并使用另一个整数 j 将不相同的索引添加到位置 i 处的整数。我相当确定我的方法是正确的,但我无法正确地得到这个 java 实现。

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int sum;
        int[] Solution = new int[2];
        outerloop:
        for (int i=0; i<nums.length; i++) {
            for (int j=0; j<nums.length; j++) {

                if (i == j) {
                    j = j++;
                    sum = nums[i] + nums[j];
                    if (sum == target) {
                        System.out.println(sum);
                        Solution[0] = i;
                        Solution[1] = j;
                        break outerloop;
                    }
                }
                else {
                sum = nums[i] + nums[j];
                if (sum == target) {
                    Solution[0] = i;
                    Solution[1] = j;
                    break outerloop;
                }
            }
            }
        }
        return Solution;
    }
}

所以当我编译和使用数组:[2,7,11,15] 和 target = 9 时,上述方法有效。但是当你尝试:[3,2,4] 和 target = 6 时,它错误地返回解决方案= [0, 0]。

我看不出我做错了什么,我查看了解决方案以及其他人发布的内容,我明白了。但是我正在尝试专门找出上面的代码有什么问题。

任何帮助将不胜感激。

【问题讨论】:

  • 这个问题不适合 StackOverlow。也许 codereview 交换会更合适!?

标签: java arrays


【解决方案1】:

在上面的蛮力方法中 i==j 不是正确的解决方案,因为数组的两个元素必须不同。 i 应该从 0 到 nums.length,j 从 i+1 到 nums.length。

【讨论】:

  • 是的,我从解决方案中理解了这一点,并且我明白了它为什么有效。但是,我包含的第一个 if 语句不会处理任何重复元素索引吗?
  • 问题在于 j=j++,正如 Arvind 先生所解释的那样。请点击他评论中的链接以获得更多解释。
  • @K.Doe - 如果其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。接受的答案有助于未来的访问者自信地使用该解决方案。
【解决方案2】:

从技术上讲,您的问题出在j = j++;,您需要将其设置为j = ++j;。见here

【讨论】:

    猜你喜欢
    • 2019-05-29
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多