题目
思路
- 思路一:暴力枚举,遍历两个数之和,看是否相等
思路二:利用HashMap查找另一个数,节省了时间,暴力枚举中主要花费在第二层循环中找另一个数,使用HashMap来查找就会很快
代码
//1.暴力枚举public 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];}//2.使用HashMap优化计算public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; ++i) {if (map.containsKey(target - nums[i])) {return new int[]{map.get(target - nums[i]), i};}map.put(nums[i], i);}return new int[0];}
