【发布时间】:2017-07-31 07:21:28
【问题描述】:
给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。
您可以假设每个输入都只有一个解决方案,并且您不能两次使用相同的元素。 考虑输入 [3,2,4] 和目标是 6。我将 (3,0) 和 (2,1) 添加到地图中,当我到达 4 并将值计算为 6 - 4 作为 2 并且当我检查是否2 是否存在于 map 中的键,它不会进入 if 循环。
我应该得到 [1,2] 的输出,它们分别是 2 和 4 的索引
public int[] twoSum(int[] nums, int target) {
int len = nums.length;
int[] arr = new int[2];
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for(int i = 0;i < len; i++)
{
int value = nums[i] - target;
if(map.containsKey(value))
{
System.out.println("Hello");
arr[0] = value;
arr[1] = map.get(value);
return arr;
}
else
{
map.put(nums[i],i);
}
}
return null;
}
我不知道问题出在哪里,请帮帮我
【问题讨论】:
-
您的意见是什么?根据问题描述,听起来您更像是需要一个双精度
for-loop来将每个值与其他值进行比较,以确定总和是否达到预期目标 -
don't work 不是一个有用的问题描述,而且您还没有描述任何问题。您发布的代码有什么问题?这个网站是针对具体问题的,没有具体的关于不工作或你没有描述的问题。跨度>
-
@MadProgrammer:你看到什么问题描述我们不是? 不工作? 250K rep是否神奇地赋予了精神力量?如果是这样,我需要在这里更加努力。 :-)
-
@MadProgrammer 我只有 350 个代表,我已经感觉到... OP:您应该使用输入、预期输出、实际输出等更新您的问题
-
@MadProgrammer:不,这种萧条远远早于 250K。我已经有好多年了。 ;-) 我只是commented about it earlier tonight。至于问题描述,我没看懂;它看起来像是作业的复制/粘贴的一部分,因为海报将其包含在同一段落中。