🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 两数之和 ``` var twoSum = function(nums, target) { if(!nums.length) return []; let num = nums.slice(0); nums.sort((x,y) => x-y); let l = 0,r = nums.length-1; while(l < r){ if(nums[l] + nums[r] === target) break; else if(nums[l] + nums[r] < target){ l++; }else{ r--; } } l = num.indexOf(nums[l]); r = num.indexOf(nums[r]) === l ? num.indexOf(nums[r],l+1) : num.indexOf(nums[r]) return [l,r]; }; ``` 哈希 ``` public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int complement = target - nums[i]; if (map.containsKey(complement)) { return new int[] { map.get(complement), i }; } map.put(nums[i], i); } throw new IllegalArgumentException("No two sum solution"); } ``` # 三数之和 https://leetcode-cn.com/problems/3sum/ ``` ``` # 最接近的三数之和 ``` ```