class Solution {
public:
vector<vector<int> > fourSum(vector<int> &num, int target) {
vector<vector<int>> result;
result.clear();
sort(num.begin(),num.end());
int i,j,cur;
for(i=0;i<num.size();i++)
{
if(i>0 && num[i]==num[i-1]) continue;
for(j=i+1;j<num.size();j++)
{
if(j>i+1 && num[j]==num[j-1]) continue;
int k,m;
k=j+1;
m=num.size()-1;
while(k<m)
{
if(k>j+1 && num[k]==num[k-1])
{
k++;
continue;
}
if(m<num.size()-1 && num[m]==num[m+1])
{
m--;
continue;
}
cur=num[i]+num[j]+num[k]+num[m];
if(cur==target)
{
vector<int> tmp;
tmp.push_back(num[i]);
tmp.push_back(num[j]);
tmp.push_back(num[k]);
tmp.push_back(num[m]);
result.push_back(tmp);
k++;
m--;
}
else if(cur<target) k++;
else m--;
}
}
}
return result;
}
};
leetcode:4Sum
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.