Leetcode刷题笔记(c++)_热题 HOT 100_15. 三数之和

暴力寻找

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>>out;
        if(nums.empty())return out;
        int n=nums.size();
        unordered_set<string>hashset;
        if(n<3)return out;
        for(int i=0;i<n-2;i++){
            unordered_set<int>hashmap;
            for(int j=i+1;j<n;j++){
                vector<int>b;
                auto it=hashmap.find(-nums[i]-nums[j]);
                if(it!=hashmap.end()){
                    b.emplace_back(nums[i]);
                    b.emplace_back(*it);
                    b.emplace_back(nums[j]);
                    sort(b.begin(),b.end());
                    string s;
                    for(int k:b)s+=to_string(k);
                    if(!hashset.count(s)){
                        out.emplace_back(b);
                        hashset.insert(s); 
                    }                   
                }                    
                else hashmap.insert(nums[j]);
            }
        }

        return out;
    }
};

超时,待更新。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值