Leetcode 01 Two Sum

来源:互联网 发布:手机桌面整理软件 编辑:程序博客网 时间:2024/05/17 22:30

题目: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

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
方法1:暴力解法

public class Solution{    public int[] twoSum(int[] nums, int target)     {          int[] a = new int[2];        for (int i = 0; i < nums.length; i++)       {           for (int j = i + 1; j < nums.length; j++)           if  ( (nums[i] + nums[j]) == target)           {               a[0] = i;               a[1] = j;           }       }       return a;    }}
方法2:利用 HashMap
public int[] twoSum(int[] nums, int target) {    Map<Integer, Integer> map = new HashMap<>();    for (int i = 0; i < nums.length; i++) {        int complement = target - nums[i];        if (map.containsKey(complement)) {            return new int[] { map.get(complement), i };        }        map.put(nums[i], i);    }    throw new IllegalArgumentException("No two sum solution");}


0 0
原创粉丝点击