代码展示
import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * 题目:两数之和 * @author DBC * @date 2022/5/9 14:20 */ public class Test01 { public static int[] twoSum(int[] nums, int target) { int n = nums.length; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if (nums[i] + nums[j] == target) { return new int[]{i, j}; } } } return new int[0]; } public static int[] twoSum2(int[] nums, int target) { Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>(); for (int i = 0; i < nums.length; ++i) { // containsKey方法——判断是否包含指定的键名 if (hashtable.containsKey(target - nums[i])) { return new int[]{hashtable.get(target - nums[i]), i}; } hashtable.put(nums[i], i); } return new int[0]; } public static void main(String[] args) { int[] list= {5,2,3,4,9,6,7}; // i:0,key:5,value:0,i:0 // i:1,key:2,value:1 // i:2, System.out.println(Arrays.toString(twoSum(list, 5))); System.out.println(Arrays.toString(twoSum2(list, 5))); } }
结果输出
[1, 2] [1, 2]
本文作者为DBC,转载请注明。