当前位置: 首页 > wzjs >正文

媒体资源湖南网络优化

媒体资源,湖南网络优化,网站建设前期策划方案,wordpress 应用cms审题&#xff1a; 本题需要我们将题目给定数组的所有子集枚举起来 思路&#xff1a; 方法一&#xff1a;二进制枚举 枚举对象&#xff1a;0到1<<n -1的整形数据 枚举顺序&#xff1a;顺序 枚举方式&#xff1a;二进制枚举 在解释二进制枚举的方法之前&#xff0c;我们先看…

审题:

本题需要我们将题目给定数组的所有子集枚举起来

思路:

方法一:二进制枚举

枚举对象:0到1<<n -1的整形数据

枚举顺序:顺序

枚举方式:二进制枚举

在解释二进制枚举的方法之前,我们先看看0~8的数字的二进制有什么特点

如果我们将0值定义为该索引位置不选,1定义为该索引位置可选。那么此时对于数字0~7的二进制情况,我们发现恰好完成了子集的枚举。

例子解释:

比如对于0数字,0~2的索引位置值都为0,说明这是三个数字都不选的情况

对于1数字,0索引位置值为1,其他位置值为0,说明这是只选择索引为0的数字的情况

其他数字情况也是同理

疑问:我们需要的数字范围是多少才能完全覆盖所有子集情况?

范围是0到(1<<n) -1。

我们先以给定数据个数为3举例,我们发现当数为8时,二进制的倒数第四位就有1了,说明到7的时候已经完成了数据个数为3所有的遍历。而8就是由1左移3位得到的,7是由8-1得到的。也就是说最远的遍历边界就是(1<<n)-1

综上,解题思路如下:

首先将需要遍历到的数依次取出,然后根据这些数的不同二进制位数值情况对子集进行数据插入。

当前子集插入完成后将子集放入二维的结果数组中,全部插入完成就直接返回结果数组

解题:

vector<vector<int>> subsets(vector<int>& nums) { int n = nums.size();vector<vector<int>> vv;//二进制枚举所有情况for(int i = 0; i < (1<<n); i++){vector<int> tmp;//对数的选择进行展开for(int j = 0; j < n; j++){//二进制值对应位置为1就插入子集if(i>>j & 1) tmp.push_back(nums[j]);}vv.push_back(tmp);}return vv;}

78. 子集 - 力扣(LeetCode)

http://www.dtcms.com/wzjs/310193.html

相关文章:

  • 怎么建个人公司网站百度指数官方版
  • 哪个网站是做安全教育灰色推广引流联系方式
  • 网站推广计划机构百度关键词怎么设置
  • 常州网站建设公司咨询seo报告
  • 制作网站作业seo网络推广
  • 网站设计公司网页设计windows优化大师好不好
  • 平凉市网站建设营销推广策划方案
  • 佛山营销网站建设服务公司广州网站制作公司
  • 做数据可视化的网站深圳市龙华区
  • 网站原型的交互怎么做海南百度竞价推广
  • 可以做词云的网站推广引流方法与渠道
  • 我要啦免费统计怎么做网站怎样进入12345的公众号
  • 网站页面怎么做的好看我的百度账号登录
  • cms网站建设软文推广是什么意思?
  • 拼多多商品关键词搜索排名宁波谷歌seo推广
  • 网站开发规划常见的网络营销方法
  • 做网站需要搭建服务器么推广项目网站
  • 建设银行内部网站6百度竞价什么时候开始的
  • 济南网站seo外包人民日报最新新闻
  • 今天新闻合肥seo报价
  • 网站建设丶金手指a排名15网络营销渠道有哪三类
  • 设计网站什么叫空间不稳定交换友情链接的要求有
  • 云羽网络做网站怎么样国外引流推广软件
  • 什么是引流推广百度网站优化工具
  • 大连网站建设公司怎么建立一个公司的网站
  • 百度竞价排名一年费用许昌正规网站优化公司
  • 代码导入wordpressgoogleseo优化
  • 周口哪家做网站好sem竞价账户托管
  • 做网站除了有服务器还需要什么问题怎么用网络推广业务
  • 影楼做网站优化课程