leetCode.1:Two Sum
阿新 • • 發佈:2018-12-12
轉自來自微信公眾號,一個專注應屆生網際網路求職分享的公眾號:公眾號ID:“菜鳥名企夢”
難易程度:★
重要性:★★
問題:即給定一個數組nums和一個整數target,如何從陣列中找出這兩個數?(假定只有一組解)
import java.util.HashMap; public class Solution { /* *分析:遍歷陣列nums,對於nums[i],我們需要找到target-nums[i]是否在陣列中: * 如果不在,則nums[i]不是我們要找的數; * 如果在,則我們找到了滿足條件的兩個數,並且需要返回這兩個數在nums陣列中的索引值。 * 由於需要返回目標數的索引值,所以我們需要記錄nums陣列中已經遍歷過的數以及該數值在nums陣列中的索引位置, * 所以採用HashMap來儲存:key為nums陣列中的值,value為對應數在nums陣列中的索引下標: */ public int[] twoSum(int[] nums, int target) { int[] res = new int[2]; HashMap<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (map.containsKey(target - nums[i])) { res[0] = map.get(target - nums[i]); res[1] = i; } else { map.put(nums[i], i); } } return res; } }