1.两数之和1.题目描述题目链接点击跳转我的初始思路暴力双层循环复杂度:时间O(n^2)空间O(1))优化思路利用 HashMap 记录已经遍历过的元素的值和索引每次只需查一下 target - nums[i] 是否在 map 里即可。复杂度时间 O(n)空间 O(n)典型的空间换时间。代码实现importjava.util.Arrays;importjava.util.HashMap;//1.两数之和publicclassL1{publicstaticvoidmain(String[]args){int[]nums{3,3};inttarget6;SolutionsolutionnewSolution();int[]resultsolution.twoSum(nums,target);System.out.println(Arrays.toString(result));}}//哈希表HashMap,O(n)classSolution{publicint[]twoSum(int[]nums,inttarget){HashMapInteger,IntegermapnewHashMap();for(inti0;inums.length;i){intneedtarget-nums[i];if(map.containsKey(need)){returnnewint[]{map.get(need),i};}map.put(nums[i],i);}returnnewint[]{};}}/* //暴力 O(n**2) class Solution { public int[] twoSum(int[] nums, int target) { for(int i 0; i nums.length ; i){ for(int j i1; j nums.length; j){ if(nums[i] nums[j] target){ return new int[]{i,j}; } } } return new int[]{}; } }*/