跳至主要内容

40. 组合总和 II

class Solution {
public:
    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
        vector<vector<pair<int, vector<int>>>> dp;

        for (int i = 0; i < candidates.size(); i++)
        {
            vector<pair<int, vector<int>>> tmp;

            int cur = candidates[i];

            if (i > 0)
            {
                vector<pair<int, vector<int>>> & pre = dp[i - 1];
                for (int j = 0; j < pre.size(); j++)
                {
                    pair<int, vector<int>> & p = pre[j];
                    int n = p.first;
                    vector<int> & v = p.second;
                    if (n + cur <= target)
                    {
                        vector<int> vv = v;
                        vv.push_back(cur);
                        tmp.push_back(make_pair(n + cur, vv));
                    }
                    tmp.push_back(p);
                }
            }

            if (cur <= target)
            {
                vector<int> vv;
                vv.push_back(cur);
                tmp.push_back(make_pair(cur, vv));
            }

            dp.push_back(tmp);
        }

        set<vector<int>> tmp;

        vector<pair<int, vector<int>>> & v = dp[dp.size() - 1];
        for (int i = 0; i < v.size(); i++)
        {
            if (v[i].first == target)
            {
                sort(v[i].second.begin(), v[i].second.end());
                tmp.insert(v[i].second);
            }
        }

        vector<vector<int>> ret;
        for (auto i : tmp)
        {
            ret.push_back(i);
        }

        return ret;
    }
};

评论

此博客中的热门博文

老毛子路由器无线桥接问题

  信道带宽:改成20M  关闭 DHCP 服务器  关闭动态 (DHCP) 路由 修改IP地址从192.168.123.1到192.168.1.114  无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择LAN bridge 连上上级wifi done 路由器自身可能上不去网,执行: route add default  gw 192.168.1.1 不过这种方式无法翻墙 ////////////////////////////////////////////////////////////// 第二种方式 不改信道不关闭DHCP,保持网段是192.168.123.1 无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择WAN 连上上级wifi done 路由器可以翻墙,但是192.168.1.1的机器访问不了192.168.123.1的机器 解决方法: 在192.168.123.1的机器把想要访问的机器比如192.168.123.100设置DMZ主机,这样就可以访问了,在 192.168.1.1能看到分配的ip比如192.168.1.115