LeetCode_1. Two Sum

Posted denggelin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode_1. Two Sum相关的知识,希望对你有一定的参考价值。

 

1. Two Sum

Easy

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].

 

package leetcode;

import java.util.HashMap;
import java.util.Map;

public class TwoSum 
	@org.junit.Test
	public void test() 
		int[] nums =  2, 7, 11, 15 ;
		int target = 9;
		Solution solution = new Solution();
		int[] result = solution.twoSum1(nums, target);
		System.out.println(result[0] + " " + result[1]);

		result = solution.twoSum2(nums, target);
		System.out.println(result[0] + " " + result[1]);

		result = solution.twoSum3(nums, target);
		System.out.println(result[0] + " " + result[1]);
	


class Solution 
	public int[] twoSum1(int[] nums, int target) 
		for (int i = 0; i < nums.length; i++) 
			for (int j = i + 1; j < nums.length; j++) 
				if (nums[j] == target - nums[i]) 
					return new int[]  i, j ;
				
			
		
		throw new IllegalArgumentException("No two sum solution");
	

	public int[] twoSum2(int[] nums, int target) 
		Map<Integer, Integer> map = new HashMap<>();
		for (int i = 0; i < nums.length; i++) 
			map.put(nums[i], i);
		
		for (int i = 0; i < nums.length; i++) 
			int complement = target - nums[i];
			if (map.containsKey(complement) && map.get(complement) != i) 
				return new int[]  i, map.get(complement) ;
			
		
		throw new IllegalArgumentException("No two sum solution");
	

	public int[] twoSum3(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");
	

 

以上是关于LeetCode_1. Two Sum的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode_1.Two Sum

1_Two Sum --LeetCode

乘风破浪:LeetCode真题_002_Add Two Numbers

28.leetcode167_two_sum_II

LeetCode_349. Intersection of Two Arrays

2_Add Two Numbers --LeetCode