Open jajaplus opened 4 years ago
https://leetcode-cn.com/problems/3sum/submissions/
/** * @param {number[]} nums * @return {number[][]} */ var threeSum = function(nums) { let sum = [] nums=nums.sort((a,b)=>a-b) if(nums[nums.length-1]<0)return [] nums.forEach((num,index)=>{ if(num<=0&&num!==nums[index-1]){ let left = index + 1 let right = nums.length - 1 while(right>left){ let numSum = num+nums[left]+nums[right] if(numSum===0){ sum.push([num,nums[left],nums[right]]) while(nums[left]===nums[left+1]){ left++ } left++ }else if(numSum<0){ left++ }else{ right-- } } } }) return sum };
把数组进行排序,然后根据排序后数值大小的规律进行进一步遍历,左右进行比较可以尽快找出符合值。当然存在一些极端的情况,所以要做排除。只要数据有规则,就可以进行处理,同时排除极端情况。
https://www.freecodecamp.org/news/i-write-to-learn/
https://my.oschina.net/wsafight/blog/3144704
https://my.oschina.net/u/4007037/blog/3134685 运用tree.js
算法
https://leetcode-cn.com/problems/3sum/submissions/
把数组进行排序,然后根据排序后数值大小的规律进行进一步遍历,左右进行比较可以尽快找出符合值。当然存在一些极端的情况,所以要做排除。只要数据有规则,就可以进行处理,同时排除极端情况。
阅读
https://www.freecodecamp.org/news/i-write-to-learn/
技巧(优秀代码)
https://my.oschina.net/wsafight/blog/3144704
分享(js实现3d效果)
https://my.oschina.net/u/4007037/blog/3134685 运用tree.js