标签:++i ring func question targe [] UNC nbsp http
今天在LeetCode刷题时遇到需要对二维数组的数组项进行去重,题目链接:三数之和,给定一个数组,取出所有三个数相加等于0的不重复的项
我给出了一个解决方案,不过时间复杂度没通过,后期再改:
var threeSum = function(nums) { var len=nums.length; var arr=[]; var res=[]; var result=[]; //取出所有三个数之和为0的项存入数组 for(var i=0;i<len;i++){ for(var j=i+1;j<len;j++){ for(var k=j+1;k<len;k++){ if(nums[i]+nums[j]+nums[k]===0){ arr.push(nums[i],nums[j],nums[k]); res.push(arr); arr=[]; } } } } //排序 res.map(item=>{ item.sort(function(v1,v2){ if(v1<v2){ return -1; }else{ return 1; } }) }) //去重 for(var i=0;i<res.length;i++){ for(var j=i+1;j<res.length;j++){ if(res[i][0]===res[j][0] && res[i][1]===res[j][1] && res[i][2]===res[j][2]){ j=++i; } } result.push(res[i]); } console.log(result) };
标签:++i ring func question targe [] UNC nbsp http
原文地址:https://www.cnblogs.com/xingguozhiming/p/9165198.html