leetcode 组合题
class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
vector<vector<int>>v;
vector<int>v2(S.size(),0);
sort(S.begin(),S.end());
subset(v,S,0,v2);
return v;
}
void subset(vector<vector<int>> &v,vector<int> &S,int cur,vector<int> &v2)
{
if(cur==S.size())
{
vector<int>child;
for(int i=0;i<cur;i++)
{
if(v2[i])
child.push_back(S[i]);
}//另外一道题SubSetII,此处加上if(count(v.begin(),v.end(),child)==0)
v.push_back(child);
return;
}
v2[cur]=1;
subset(v,S,cur+1,v2);
v2[cur]=0;
subset(v,S,cur+1,v2);
}
};
较好的解法:
class Solution {
public:
vector<vector<int>>v;
vector<int>temp;
vector<vector<int> > subsetsWithDup(vector<int> &S)
{
sort(S.begin(),S.end());
v.clear();
temp.clear();
dfs(S,0);
return v;
}
void dfs(vector<int> &S,int dep)
{
v.push_back(temp);
for(int i=dep;i<S.size();i++)
{
if(i!=dep&&S[i]==S[i-1])continue; //SubsetsII 添加代码
temp.push_back(S[i]);
dfs(S,i+1);
temp.pop_back();
}
}
};
leetcode 组合题的更多相关文章
- LeetCode算法题-Letter Case Permutation(Java实现)
这是悦乐书的第315次更新,第336篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第184题(顺位题号是784).给定一个字符串S,将每个字母单独转换为小写或大写以创建另 ...
- LeetCode算法题-Min Cost Climbing Stairs(Java实现)
这是悦乐书的第307次更新,第327篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第176题(顺位题号是746).在楼梯上,第i步有一些非负成本成本[i]分配(0索引). ...
- LeetCode算法题-1-bit and 2-bit Characters(Java实现)
这是悦乐书的第302次更新,第321篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第170题(顺位题号是717).有两个特殊字符,第一个字符可以用一个比特0表示,第二个字 ...
- LeetCode算法题-Count Binary Substrings(Java实现)
这是悦乐书的第293次更新,第311篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第161题(顺位题号是696).给定一个字符串s,计算具有相同数字0和1的非空且连续子串 ...
- LeetCode算法题-Array Partition I(Java实现)
这是悦乐书的第262次更新,第275篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第129题(顺位题号是561).给定一个2n个整数的数组,你的任务是将这些整数分组为n对 ...
- LeetCode算法题-Number of Boomerangs(Java实现)
这是悦乐书的第231次更新,第244篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第98题(顺位题号是447).给定平面中的n个点都是成对不同的,"回旋镖&qu ...
- LeetCode算法题-Binary Watch(Java实现)
这是悦乐书的第216次更新,第229篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第84题(顺位题号是401).二进制手表顶部有4个LED,代表小时(0-11),底部的6 ...
- LeetCode算法题-Ugly Number(Java实现-四种解法)
这是悦乐书的第199次更新,第208篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第64题(顺位题号是263).编写一个程序来检查给定的数字是否是一个丑陋的数字.丑陋的数 ...
- LeetCode算法题-Intersection of Two Linked Lists(Java实现)
这是悦乐书的第178次更新,第180篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第37题(顺位题号是160).编写程序以找到两个单链表交叉的节点.例如: 以下两个链表: ...
随机推荐
- Java虚拟机学习 - 对象访问
对象访问会涉及到Java栈.Java堆.方法区这三个内存区域. 如下面这句代码: Object objectRef = new Object(); 假设这句代码出现在方法体中,"Object ...
- 插件化技术在安卓sdk开发中实际应用
笔者从 2016 年初就因为公司业务需求转战 android sdk 开发, 应用插件化技术将公司 android sdk 重新翻版.先来说说需求. 由于笔者所在一家创业公司, android sdk ...
- 测试浏览器最多能包含Cookie的个数和Cookie中包含的最多内容
public class CookieTestServlet extends HttpServlet { public void doGet(HttpServletRequest request, H ...
- jquery mobile跳转到指定id时怎样传递参数
在jquery mobile 中,每一个页面都是一个page,当我们需要从一个页面跳转到另一个页面时,可以在href中指定id,可是该怎么把一个page中的参数传递到另外一个page中,几经琢磨,发现 ...
- php笔记06:http响应中的状态码
首先我们看一个360浏览器中使用开发截图如下: 上面的Status Code: OK (这个就是状态码) 1.状态码主要用于服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所 ...
- ios开发时候,出现A valid provisioning profile for this executable was not found 错误
今天一大早起来,做ios的开发,发现了一下错误:A valid provisioning profile for this executable was not found 错误的产生是在开发模式下产 ...
- Spring安全资料整理列表
Spring 被爆漏洞,允许远程执行代码http://automationqa.com/forum.php?mod=viewthread&tid=2827&fromuid=21 Spr ...
- AWS 命令行界面 + Python 的 AWS 开发工具包 (Boto3)
安装AWS CLI $ pip install awscli 安装Boto3 $ pip install boto3 设置AWS CLI $ aws configure AWS Access Key ...
- 火狐浏览器插件Modify Headers伪造IP地址
安装插件:先打开火狐浏览器 => 找到下载好的 modify_headers.xpi 插件文件 => 鼠标按住插件文件不放,拖拽到火狐浏览器界面 => 按提示重启浏览器 => ...
- java ,js获取web工程路径
一.java获取web工程路径 1),在servlet可以用一下方法取得: request.getRealPath(“/”) 例如:filepach = request.getRealPath(“/” ...