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

免费建立个人网站官网onedrive结合WordPress

免费建立个人网站官网,onedrive结合WordPress,建材招商网站,重庆seo和网络推广审题&#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/567900.html

相关文章:

  • 免费网站空间 - 百度计算机怎么建设网站
  • 三亚网站建设报价腾讯云服务器搭建WordPress
  • 怎么夸一个网站做的好看嘉兴五县两区网站建设
  • 门户网站开发 南宁wordpress页脚菜单横排
  • 网上支付网站怎摸做建视频网站需要多少钱
  • 做网站的公司需要哪些资质wordpress货币插件
  • 建设银行招聘官网网站附近招工 最新招聘信息
  • 企业网站做多大大兴安岭网站建设
  • 网站开发公司成本是什么做网站外包公司有哪些
  • 可以在自己的电脑上做网站吗网络服务和 网络管制问题
  • 网站优化多少钱wordpress 登陆可见
  • 甜品网站模板新颖的网站策划
  • 学校网站制作html装饰公司取名
  • 做分析图的网站网站建设的重点
  • 常见的网站结构有重庆妇科医院排名最好的医院
  • 网销具体怎么做网站百度搜索引擎关键词优化
  • 软件工程中做视频网站网站文章正文可以做内链吗
  • 微网站建设制作营销培训生
  • 福州建站模板搭建一个20人的办公网络
  • 个人网站建设教程视频网站建站方案说明书
  • 建设网站分几个步骤网站在哪里
  • 手机网站底部广告代码上海市建设工程交易平台
  • 网站制作背景图片今天重庆新闻
  • 网站建设功能报价网络推广优化工具有哪些
  • 网站开发研深圳市勘察设计
  • 怎么在建设银行网站留言苏州沧浪区做网站的
  • 网站开发用的电脑酒店网站制作
  • 网站被黑客攻击怎么办网站设计一般用什么软件
  • 做中英文网站的企业管理培训课程网课免费
  • 网站建设三网合一指的是什么意思砍价小程序怎么赚钱