gpt4 book ai didi

java - LeetCode 的二和问题 : Brute force solution approach not working?

转载 作者:行者123 更新时间:2023-12-01 22:44:53 24 4
gpt4 key购买 nike

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

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

示例:

给定 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]。

我看不出我做错了什么,我查看了解决方案以及其他人发布的内容,我明白了。但我想具体找出上面的代码有什么问题。

如有任何帮助,我们将不胜感激。

最佳答案

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

关于java - LeetCode 的二和问题 : Brute force solution approach not working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58475999/

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