zoukankan      html  css  js  c++  java
  • leetcode 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
    
    说明:解集不能包含重复的子集。
    
    示例:
    
    输入: nums = [1,2,3]
    输出:
    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]

    像这类题,选与不选,最开始想到的就是分情况递归。选1与不选1,同时要结合题意进行答案的输出。

    子集包含空,最开始就把结果添加进去,然后每添加一个,就把结果添加进去。看了有的题解说的是回溯,我感觉回溯是会回头的方法,这道题的题意讲的是从不回头,因为1选了就不会再选1了,所以这里要设置现在的结果遍历到第几个了,以后都会从这个结果之后进行开始。

    class Solution {
    public:
        vector<vector<int>> r;
        vector<vector<int>> subsets(vector<int>& nums) {
             vector<int> res;
            solve(res,nums,0);
                return r;
        }
        void solve(vector<int> res, vector<int> nums, int start)
        {
            r.push_back(res);
            for(int i = start; i < nums.size(); i++)
            {
                res.push_back(nums[i]);
                solve(res,nums,i+1);
                res.pop_back();
            }
        }
    };
    诸位正值青春年少,一定恣情放纵,贪恋香艳梅施之情,喜欢风流雅韵之事,洒脱木拘。然而诸位可知,草上露一碰即落,竹上霜一触即溶,此种风情难于长久。
  • 相关阅读:
    C# 把类实例保存到文件里(类的序列化和反序列化)
    C# 枚举的初始化
    旋转 3d
    asp.net页面间传值方式
    sql获取当前时间
    SqlServer中循环和条件语句示例!
    SQL Server 代理(已禁用代理 XP)
    JQuery源码实现
    C#计算一段程序运行时间的三种方法
    java开发配套版本
  • 原文地址:https://www.cnblogs.com/shilipojianshen/p/12618626.html
Copyright © 2011-2022 走看看