zoukankan      html  css  js  c++  java
  • 子集

    题目描述

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

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

    示例:

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

    解题思路

    递归

    直接遍历数组,遇到一个数就把所有子集加上该数组成新的子集,遍历完毕即是所有子集。

    注意⚠️ 别忘了空集[]也是子集,所以我们需要首先添加一个空集。

    //go
    func subsets(nums []int) [][]int {
     arr := make([][]int, 0)          // 记录结果
     arr = append(arr, []int{})       // 首先添加空集
     for i := 0; i < len(nums); i++ { // 遍历数组
      tempArr := make([][]int, 0) // 临时存储
      for _, c := range arr {     // 遍历已有子集
       temp := make([]int, 0)          // 临时存储
       temp = append(temp, c...)       // 添加子集
       temp = append(temp, nums[i])    // 添加新元素
       tempArr = append(tempArr, temp) // 添加到临时存储中
      }
      for _, c := range tempArr { // 遍历存入结果
       arr = append(arr, c)
      }
     }
     return arr
    }
    

      地址:https://mp.weixin.qq.com/s/pdNuMA9TAbb9ue3IEeNQPg

  • 相关阅读:
    css 如何让背景图片拉伸填充避免重复显示
    CDHtmlDialog 基本使用
    RES协议
    Sata win7 热插拔(AHCI)
    __argc和__argv变量
    MFC进度条刷新处理
    SVN强制注释
    自动build服务器 CruiseControl.NET
    opencv Mat 像素操作
    std::string 用法
  • 原文地址:https://www.cnblogs.com/smallleiit/p/13340920.html
Copyright © 2011-2022 走看看