LeetCode刷题【Array】 Two Sum

来源:互联网 发布:mac如何查看硬盘容量 编辑:程序博客网 时间:2024/04/29 09:37

题目:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
解决方法一:Runtime: 44 ms

public class Solution {    public int[] twoSum(int[] nums, int target) {        int ret[] = new int[2];        for(int i=0;i<nums.length;i++){            for(int j=i+1;j<nums.length;j++){                int sum = nums[j]+nums[i];                if(sum==target){                    ret[0] =i;                    ret[1] =j;                    return ret;                }            }        }        return ret;    }}

解决方法二:Runtime: 9 ms

public class Solution {    public int[] twoSum(int[] nums, int target) {        int ret[] = new int[2];        Map<Integer,Integer> map = new HashMap<Integer,Integer>();        for(int i=0;i<nums.length;i++){            if(map.containsKey(target-nums[i])){                ret[0] = map.get(target-nums[i]);                ret[1] = i;                return ret;            }            map.put(nums[i],i);        }        return ret;    }}

参考:

【1】https://leetcode.com/


0 0
原创粉丝点击