1 Two Sum (Array)
老的方法O(n2)不太好
System.out array的时候不能直接显示,要用Arrays.toString() 转换下
1 //老的: 2 3 import java.util.Arrays; 4 5 public class Twosum { 6 public static void main(String[] args) { 7 Solution s = new Solution(); 8 int[] nums = {2 ,7 ,11, 15}; 9 int[] result = s.twoSum(nums, 9); 10 System.out.println(Arrays.toString(result)); 11 12 } 13 14 } 15 16 class Solution { 17 public int[] twoSum(int[] nums, int target) { 18 for (int i = 0; i < nums.length; i++) { 19 for (int j = i+1; j < nums.length; j++) { 20 if (nums[i] + nums[j] == target) { 21 int[] result = {i, j}; 22 return result; 23 } 24 } 25 } 26 return nums; 27 28 } 29 } 30 31 32 33 34 //96%: 35 class Solution { 36 public int[] twoSum(int[] nums, int target) { 37 HashMap<Integer, Integer> m = new HashMap<Integer, Integer>(); 38 int[] res = new int[2]; 39 for (int i = 0; i < nums.length; ++i) { 40 if (m.containsKey(target - nums[i])) { 41 res[1] = i; 42 res[0] = m.get(target - nums[i]); 43 break; 44 } 45 m.put(nums[i], i); 46 } 47 return res; 48 } 49 }

浙公网安备 33010602011771号