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

公司如何注册网站seo诊断报告

公司如何注册网站,seo诊断报告,品牌网站制作报价表,vue 做门户网站目录 一,题目解析 二,例子 三,题目接口 四,解题思路以及代码 1.完全深度搜索 2.广度搜索加上深度优先搜索 五,相似题 1.题目 2.题目接口 3.解题代码 一,题目解析 给你一个整数数组 nums &#xff0c…

 

目录

一,题目解析

二,例子

三,题目接口

 四,解题思路以及代码

1.完全深度搜索

2.广度搜索加上深度优先搜索

五,相似题

1.题目

2.题目接口

 3.解题代码


一,题目解析

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

二,例子

如以上例子,其实这道题里的子集的概念其实就是我们在高中时学习到的子集。一个含有n个数字的集合一共就有2^n个子集。空集是任何集合的子集。

三,题目接口

class Solution {
public:vector<vector<int>> subsets(vector<int>& nums) {}
};

 四,解题思路以及代码

1.完全深度搜索

首先,我们可以来模拟一下这个集合完全通过深度优先搜索算法挑选子集的过程。先来说一说步骤,以数组{1,2,3}为例:

1.首先,我们得来做选择,在遍历到1时有两种选择,选和不选。通过这两种选择会导致两种不同的结果,也就是两种不同的集合。

2.到了第二层,遍历到了2这个数字。也会有两种不同的选择,又在上面一层的基础之上又会有四种不同的结果。

3.在最后一层遍历到3时,3的选与不选在上面两层的基础之上又会生成八种不同的结果。这8种结果便是我们要的所有子集。

画成图像如下:

按照这个思路写出的代码如下:

class Solution {
public:vector<int> path;vector<vector<int>>ret;vector<vector<int>> subsets(vector<int>& nums) {dfs(nums,0);return ret;}void dfs(vector<int>& nums,int pos){if(pos == nums.size()){ret.push_back(path);return;}//在这一层选空节点dfs(nums,pos+1);//选对应的数字path.push_back(nums[pos]);dfs(nums,pos+1);path.pop_back();//递归完一层以后要还原现场,也就是回溯}
};

2.广度搜索加上深度优先搜索

其实完全走深度优先搜索的方法其实效率不是很高,所以为了提高效率便可以将广度优先搜索算法给加入进来。以[1,2,3]为例,用这个算法的步骤如下:

1.首先,一言不合便开始将path加入到ret中,那在第一次假如时便将空集给加入到ret中了。

2.将这一层中的元素加入到path中,然后再往下递归。

3.再次插入元素到path,再插入到ret中。再往下递归。递归结束的时候下标的值是等于数组的元素个数的。在递归完了以后也要回溯恢复现场。

图解过程如下:

代码如下:

class Solution {
public:vector<int> path;vector<vector<int>>ret;vector<vector<int>> subsets(vector<int>& nums) {dfs(nums,0);return ret;}void dfs(vector<int>& nums,int pos){ret.push_back(path);//一言不合便将path塞入到ret中for(int i = pos;i<nums.size();i++)//其实这里边相当于一个递归的结束条件{path.push_back(nums[i]);dfs(nums,i+1);//递归下一层path.pop_back();//回溯,恢复现场}  }
};

五,相似题

1.题目

一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为  ,则异或总和为 0 。

  • 例如,数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 = 1 。

给你一个数组 nums ,请你求出 nums 中每个 子集 的 异或总和 ,计算并返回这些值相加之  。

注意:在本题中,元素 相同 的不同子集应 多次 计数。

数组 a 是数组 b 的一个 子集 的前提条件是:从 b 删除几个(也可能不删除)元素能够得到 a 。

2.题目接口

class Solution {
public:int subsetXORSum(vector<int>& nums) {}
};

 3.解题代码

其实这道题和子集这道题的代码可太像了,所以不多赘述,代码如下:

class Solution {
public:int sum;int path;int subsetXORSum(vector<int>& nums) {dfs(nums,0);return sum;}void dfs(vector<int>&nums,int pos){sum+=path;for(int i = pos;i<nums.size();i++){path = path^nums[i];dfs(nums,i+1);path = path^nums[i];//消消乐定律,这一层的自己和自己异或便是恢复上一层样子。}}
};

http://www.ds6.com.cn/news/96666.html

相关文章:

  • 电子商务网站建设一般流程图百度学术论文官网入口
  • 广西疫情最新消息今天封城了百度快照优化
  • 做爰网站美女b2b平台运营模式
  • 湖南手机网站建设公司网络销售平台
  • 卢湾做网站公司营销型网站的类型有哪些
  • 公众号外链网站怎么做抖音seo排名
  • 廊坊网站制作服务青岛网站设计微动力
  • 做网站最省钱重庆seo入门教程
  • 婚纱网站设计素材外链推广
  • 网站建设后的团队总结什么软件推广效果好
  • 重庆横幅制作百度seo2022新算法更新
  • 四川整站优化专业的机构线下推广活动策划方案
  • 繁体中文网站 怎么做免费源码下载网站
  • wordpress实现b s石家庄seo关键词排名
  • 怎么做网站底部文件做推广哪个平台效果好
  • 温州做企业网站无锡网站建设seo
  • 在淘宝做印刷网站怎么办理公司网站域名续费一年多少钱
  • 海南专业做网站的公司外包网络推广公司推广网站
  • 福州网签查询系统梅州seo
  • 手机网站返回顶部代码苏州关键词seo排名
  • 哪个教育网站做助理造价师培训好的产品怎么推广语言
  • 请人做软件开发的网站友情链接适用网站
  • 国外购物网站排行榜如何建立独立网站
  • 哪个平台打广告效果好沈阳企业网站seo公司
  • 网站开发合同封面网课免费平台
  • 哪些网站是dz做的优化系统的软件
  • 做网站的是什么职位成都网络营销搜索推广
  • 怎么制作微信公众号文章内容seo百度网站排名软件
  • 建设部网站注册中心东莞百度seo关键词优化
  • wordpress邮件功能用不了抖音seo优化系统招商