015.三數之和

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>> ret;
        sort(nums.begin(), nums.end());
        for(int i=0; i<nums.size(); ++i){
            int j=i+1, k=nums.size() -1;
            if(i&&nums[i] == nums[i-1])
                continue;
            while(j<k){
            if(nums[j]+nums[k] == -nums[i]){
                vector<int> temp;
                temp.push_back(nums[i]);
                temp.push_back(nums[j]);
                temp.push_back(nums[k]);
                ret.push_back(temp);
                ++j;
                --k;
            }
            else if(nums[j]+nums[k] < -nums[i])
                ++j;
            else
                --k;
            }
    }
    auto pos = unique(ret.begin(),ret.end());
    ret.erase(pos,ret.end());
    return ret;
    }
};

知識點 unique函數
sort函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章