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真题_002_Add Two Numbers