【发布时间】:2018-04-04 15:47:21
【问题描述】:
我正在练习编码问题,但我不确定为什么我的代码不起作用(我知道它的编写效率不是很高:/)
给定一个数组和一个目标数,返回数组中两个数加起来等于目标数的索引。示例:nums = [2, 7, 11, 15], target = 9,
因为 nums[0] + nums[1] = 2 + 7 = 9, 返回 [0, 1]。 (索引必须是 diff)
class Solution {
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++)
{
if (nums[i] <= target)
{
for (int j = i; j < nums.length; j++)
{
System.out.print(nums[i]);
if (nums[i] + nums[j] == target)
{
return new int[]{i, j};
}
}
}
}
return new int[]{0,0};
}
}
任何帮助将不胜感激!
【问题讨论】:
-
索引必须不同吗?对于 14 的目标,您可以返回 [1, 1] 吗?
-
是的,索引必须不同
-
在这种情况下,您可以将第二个循环更改为从
j = i + 1开始。至于您的问题,我看不到代码有任何问题,所以您可以发布您的使用情况吗? IE。你是如何调用函数的。 -
我正在使用 leetcode 运行代码,所以我没有调用该函数 - 将其修改为 j = i +1 似乎可以解决它!至少我的输出现在与他们的匹配 - 谢谢!
-
不客气。 :)
标签: java for-loop if-statement return