LeetCode:Subsets
来源:互联网 发布:ubuntu terminal 配置 编辑:程序博客网 时间:2024/06/05 16:41
这一题让我想起了大二下学期数据结构的一个课程设计:随机发牌,也是同样运用到了二进制位的思路。这题中的排序就写了个简单的冒泡排序,一次性AC
class Solution {public: void Sort(vector<int>&S) { int num=S.size(); if(num<2) return; int i,j; int flag; for(i=1;i<num;i++)//i用来记录趟数,每一趟结束确定一个元素位置 { flag=0; for(j=1;j<num-i+1;j++) { if(S[j-1]>S[j]) { S[j-1]=S[j-1]-S[j]; S[j]=S[j]+S[j-1]; S[j-1]=S[j]-S[j-1]; flag=1; } } if(flag==0) return; } } vector<vector<int> > subsets(vector<int> &S) { //若集合的元素个数是n,则它的幂集个数为2^n,于是可采用将元素排序在n个bit位上,遍历0~2^n,bit位上为1对应的数放入子集。题目要求序列不递减,则需要S排序 vector<vector<int>> result; if(S.empty())//如果S为空,则在result加入空集,直接返回 { result.push_back(S); return result; } Sort(S); int num=pow(2,S.size()); int i; int j; vector<int>element; for(i=0;i<num;i++) { element.clear(); for(j=0;j<32;j++) { if(i&1<<j) { element.push_back(S[j]); } } result.push_back(element); } return result; }};
0 0
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- LeetCode: Subsets
- LeetCode Subsets
- [Leetcode] Subsets
- LeetCode : Subsets
- [LeetCode] Subsets
- Leetcode: Subsets
- Leetcode: Subsets ||
- [leetcode] subsets
- Leetcode - Subsets
- [LeetCode]Subsets
- LeetCode-Subsets
- LeetCode - Subsets
- LeetCode | Subsets
- unix信号处理机制
- 练习 bottom和函数
- C# 清除IE缓存方法
- Java多线程学习(吐血超详细总结)
- magento admin chrome firefox
- LeetCode:Subsets
- Linux删除日志文件和清除日志文件脚本
- 产品经理们都是怎样成为产品经理的?
- 新手App上架问题
- GUN ARM汇编中标号的引用在汇编和C语言中区别(monitor_flash_len = _bss_start - _armboot_start;)
- 请你知道:干程序是一项伟大的事业
- ios回复购买商品
- cocos2dx-3.4 lua import
- OpenLayers中的图层