您的位置:首页 > 编程语言 > Java开发

LeetCode 001_Two Sum Java

2015-05-29 17:41 519 查看
public class Solution {
public int[] twoSum(int[] nums, int target) {
int temp;
boolean flag = false;
int[] index = new int[2];
for(int i = 0; i < nums.length; i++){
temp = target - nums[i];
for(int j = 0; j < nums.length; j++){
if(i == j) continue;
if(temp == nums[j]){
index[1] = j+1;
flag = true;
break;
}
}
if(flag){
index[0] = i+1;
break;
}
}
return index;
}

思路二:
把数组的值作为map的key, 由于满足 nums[i] + nums[j] = target ,故必存在key值满足nums的元素
public int[] twoSum2(int[] nums, int target) {
int[] index=new int[2];
HashMap<Integer,Integer> hm = new HashMap<Integer,Integer>();

for(int i = 0; i<nums.length; i++)
{
if(hm.containsKey(target - nums[i]))
{
index[1] = i+1;
index[0] = hm.get(target-nums[i])+1;
return index;
}else
{
hm.put(nums[i],i);
}
}
return index;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: