我正在练习编码问题而且我不确定为什么我的代码不起作用(我知道它的编写效率不高:/)
给定一个数组和一个目标数字,返回数组中两个数字的索引,它们加起来就是目标数字。示例:nums = [2,7,11,15],target = 9,
因为nums [0] + nums [1] = 2 + 7 = 9, 返回[0,1]。 (指数必须是差异)
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};
}
}
非常感谢任何帮助!
答案 0 :(得分:0)
正如您所提到的,如果两个数字必须不同,则必须在j
中开始迭代i + 1
。
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++)
{
if (nums[i] <= target)
{
for (int j = i + 1; j < nums.length; j++)
{
if (nums[i] + nums[j] == target)
{
return new int[]{i, j};
}
}
}
}
return new int[]{0,0};
}