题解 | #牛牛的三元组问题#

牛牛的三元组问题

https://www.nowcoder.com/practice/72c6d735fb1144a2ba162976a4510839

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型vector<vector<>>
     */

    int jumptodiff(vector<int>& nums,int index) {
        int temp = nums[index];
        while (index < nums.size() && temp == nums[index]) {
            ++index;
        }
        return index;
    }

    void find_res(vector<vector<int>>& res, vector<int>& subres, vector<int>& nums, int sum, int index) {
        if (subres.size() == 3 && sum == 0) {
            res.push_back(subres);
            return;
        }
        else if (subres.size() == 3 && sum != 0) {
            return;
        }
        if (index < nums.size()) {

            // contain index
            subres.push_back(nums[index]);
            sum += nums[index];
            find_res(res, subres, nums, sum, index + 1);
            subres.pop_back();
            sum -= nums[index];

            // ignori index, jump to different value
            int index_next = jumptodiff(nums, index);
            find_res(res, subres, nums, sum, index_next);

        }
        return;
    }

    vector<vector<int>> findTriplets(vector<int>& nums) {
        // write code here
        sort(nums.begin(), nums.end());
        // recursion
        vector<vector<int>> res;
        vector<int> subres;
        find_res(res, subres, nums, 0, 0);
        return res;
    }
};

全部评论

相关推荐

11-27 14:21
同济大学 Java
卢来猴祖:给了这薪资关键拿不了几个月就给你踹了呀
点赞 评论 收藏
分享
迷茫的大四🐶:能不能好好排个版,谁会看这么长的简历啊,说明书吗
校招求职吐槽
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务