本文共 1130 字,大约阅读时间需要 3 分钟。
public class TwoSum { /** * 通过双重循环遍历数组中所有元素的两两组合 * 当出现符合的和时返回两个元素的下标 * @param nums * @param target * @return */ public static int[] twoSum1(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j< nums.length; j++) { if (target - nums[i] == nums[j]) { return new int[]{i, j}; } } } return null; } //哈希 public static int[] twoSum2(int[] nums, int target) { HashMapmap = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int partnerNumber = target - nums[i]; if (map.containsKey(partnerNumber)) { return new int[]{map.get(partnerNumber), i}; } map.put(nums[i], i); //map K值 V下标 // 2 0 } return null; } public static void main(String[] args) { int[] nums = new int[]{2, 7, 11, 15}; int target = 22; int[] myIndex = twoSum2(nums, target); System.out.println(Arrays.toString(myIndex)); }}
转载地址:http://qihsz.baihongyu.com/