zoukankan      html  css  js  c++  java
  • 78. 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

    说明:解集不能包含重复的子集。

    示例:

    输入: nums = [1,2,3]
    输出:
    [
    [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]

    链接:https://leetcode-cn.com/problems/subsets

    回溯算法:(作者:labuladong)

    result = []
    def backtrack(路径, 选择列表):
        if 满足结束条件:
            result.add(路径)
            return
        for 选择 in 选择列表:
            做选择
            backtrack(路径, 选择列表)
            撤销选择

    利用回溯:

    class Solution {
    public:
        vector<vector<int>> res;
        void backtrack(vector<int>& nums,int start,vector<int>& track)
        {
            res.push_back(track);
            for(int i=start;i<nums.size();i++)
            {
                track.push_back(nums[i]);
                backtrack(nums,i+1,track);
                track.pop_back();
            }
        }
        vector<vector<int>> subsets(vector<int>& nums) {
            vector<int> track;
            backtrack(nums,0,track);
            return res;
        }
    };
  • 相关阅读:
    python基础语法
    DNS解析原理
    (4)获取servlet常用api
    (2)struts2配置祥解
    (1)WEB框架概念和struts2体验
    10.1--登录认证拦截器
    10--拦截器
    9--RESTful支持
    8--json交互
    7---上传图片
  • 原文地址:https://www.cnblogs.com/dealer/p/12492725.html
Copyright © 2011-2022 走看看