1. 程式人生 > >Java之求陣列中兩個數之和

Java之求陣列中兩個數之和

給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的 兩個 整數。

你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

通過使用空間換取時間,降低時間複雜度
時間複雜度O(n)
空間複雜度o(n)
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"); }