博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 90. 子集 II(Subsets II)
阅读量:5109 次
发布时间:2019-06-13

本文共 1030 字,大约阅读时间需要 3 分钟。

目录

题目描述:

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

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

示例:

输入: [1,2,2]输出:[  [2],  [1],  [1,2,2],  [2,2],  [1,2],  []]

解法:

class Solution {public:        void subset(vector
& nums, int pre, int copy, vector
>& res){ } vector
> subsetsWithDup(vector
& nums) { int sz = nums.size(); if(sz == 0){ return {nums}; } sort(nums.begin(), nums.end()); vector
> res(1); if(nums.front() == nums.back()){ for(int i = 0; i < sz; i++){ res.push_back(nums); nums.pop_back(); } }else{ int pre = nums.front() + 1; int copy = 1; int res_sz = 1; for(int i = 0; i < sz; i++){ if(nums[i] != pre){ copy = res_sz; pre = nums[i]; } for(int j = copy; j > 0; j--){ vector
lst = res[res_sz - j]; lst.push_back(nums[i]); res.push_back(lst); } res_sz += copy; } } return res; }};

转载于:https://www.cnblogs.com/zhanzq/p/10782373.html

你可能感兴趣的文章
[CATARC_2017] 第五周
查看>>
sublime常用快捷键
查看>>
POJ 2388&&2299
查看>>
Fiddler 教程
查看>>
18-----BBS论坛
查看>>
HDU 1829 A Bug's Life(种类并查集)
查看>>
PAT甲级题解-1097. Deduplication on a Linked List (25)-链表的删除操作
查看>>
js关闭窗口兼容firefox、chrome、ie
查看>>
【bug】—— IE8 ajax 报错:no transport
查看>>
第二阶段个人总结03
查看>>
【练习】HTML+CSS
查看>>
运算符的一些运用规则
查看>>
linux php全能环境一键安装,小白福利!
查看>>
文件的读写过程open read write close
查看>>
Struts2增删改查的例子
查看>>
【C++】不同含义new和delete
查看>>
SQL Server 2014新特性探秘(2)-SSD Buffer Pool Extension
查看>>
C++ Iostreams 用法详解(一)整体把握
查看>>
HDU1243 反恐训练营(dp)
查看>>
eclipse 中使用等宽字体 inconsolata
查看>>