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

临泉做网站国内免费saas+crm

临泉做网站,国内免费saas+crm,宁波网站公司哪家好,微信小程序外联网站目录 一#xff0c;题目解析 二#xff0c;例子 三#xff0c;题目接口 四#xff0c;解题思路以及代码 1.完全深度搜索 2.广度搜索加上深度优先搜索 五#xff0c;相似题 1.题目 2.题目接口 3.解题代码 一#xff0c;题目解析 给你一个整数数组 nums #xff0c… 目录 一题目解析 二例子 三题目接口 四解题思路以及代码 1.完全深度搜索 2.广度搜索加上深度优先搜索 五相似题 1.题目 2.题目接口 3.解题代码 一题目解析 给你一个整数数组 nums 数组中的元素 互不相同 。返回该数组所有可能的子集幂集。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 二例子 如以上例子其实这道题里的子集的概念其实就是我们在高中时学习到的子集。一个含有n个数字的集合一共就有2^n个子集。空集是任何集合的子集。 三题目接口 class Solution { public:vectorvectorint subsets(vectorint nums) {} }; 四解题思路以及代码 1.完全深度搜索 首先我们可以来模拟一下这个集合完全通过深度优先搜索算法挑选子集的过程。先来说一说步骤以数组{123}为例 1.首先我们得来做选择在遍历到1时有两种选择选和不选。通过这两种选择会导致两种不同的结果也就是两种不同的集合。 2.到了第二层遍历到了2这个数字。也会有两种不同的选择又在上面一层的基础之上又会有四种不同的结果。 3.在最后一层遍历到3时3的选与不选在上面两层的基础之上又会生成八种不同的结果。这8种结果便是我们要的所有子集。 画成图像如下 按照这个思路写出的代码如下 class Solution { public:vectorint path;vectorvectorintret;vectorvectorint subsets(vectorint nums) {dfs(nums,0);return ret;}void dfs(vectorint nums,int pos){if(pos nums.size()){ret.push_back(path);return;}//在这一层选空节点dfs(nums,pos1);//选对应的数字path.push_back(nums[pos]);dfs(nums,pos1);path.pop_back();//递归完一层以后要还原现场也就是回溯} }; 2.广度搜索加上深度优先搜索 其实完全走深度优先搜索的方法其实效率不是很高所以为了提高效率便可以将广度优先搜索算法给加入进来。以[1,2,3]为例用这个算法的步骤如下 1.首先一言不合便开始将path加入到ret中那在第一次假如时便将空集给加入到ret中了。 2.将这一层中的元素加入到path中然后再往下递归。 3.再次插入元素到path再插入到ret中。再往下递归。递归结束的时候下标的值是等于数组的元素个数的。在递归完了以后也要回溯恢复现场。 图解过程如下 代码如下 class Solution { public:vectorint path;vectorvectorintret;vectorvectorint subsets(vectorint nums) {dfs(nums,0);return ret;}void dfs(vectorint nums,int pos){ret.push_back(path);//一言不合便将path塞入到ret中for(int i pos;inums.size();i)//其实这里边相当于一个递归的结束条件{path.push_back(nums[i]);dfs(nums,i1);//递归下一层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(vectorint nums) {} }; 3.解题代码 其实这道题和子集这道题的代码可太像了所以不多赘述代码如下 class Solution { public:int sum;int path;int subsetXORSum(vectorint nums) {dfs(nums,0);return sum;}void dfs(vectorintnums,int pos){sumpath;for(int i pos;inums.size();i){path path^nums[i];dfs(nums,i1);path path^nums[i];//消消乐定律这一层的自己和自己异或便是恢复上一层样子。}} };
http://www.yutouwan.com/news/197087/

相关文章:

  • 做网站深紫色搭配什么颜色微信定制开发多少钱
  • 怎么提高网站收录量优书网注册
  • 在线教学网站开发德阳响应式网站建设
  • 生活信息网站建设发布信息的网站
  • 北京seo公司网站90设计网站是不是没有视频模板
  • 网站建设 保密网络推广的方式方法
  • 小公司做网站需要注意什么问题哪里app开发公司好
  • dw怎么做秋季运动会网站分销平台合生元
  • 浙江建设厅网站那三类人员怎么制作自己的微信公众号
  • 企业型商务网站制作做法南阳新闻最新消息
  • 重庆微信网站建设报价表网站我优化
  • 琼海市规划建设局网站杭州建设网站 网站建设
  • 网站做产品的审核工作怎么样app设计尺寸规范
  • 专业团队的梗pc网站如何做seo
  • 做营销型网站一般要多少钱山西建设网官方网站
  • 怎样建设自己网站的后台做网站的怎样找客户
  • 个人网站建设法律规定龙采做网站要多少钱
  • 网站排名快速提升wordpress 自适应 汉化
  • 阿里logo设计网站广州安全教育平台账号登录入口
  • 门户网站制作价格表网站架构图的制作
  • 网站开发 哪家好海外seo培训
  • 杭州营销型网站建设好的学校网站设计
  • 网站建设与推广策划案案例前端项目开发流程
  • 电子商务网站开发概述东莞标志设计公司
  • 企业做pc网站需要什么资料爱用建站 小程序
  • 跨境电商网站开发文档龙岩网站建设推广
  • 上国外网站 dns陕西优秀的企业门户网站建设
  • 惠州网站建设兼职手机如何创网站
  • 路由器做php网站吗网站定制兴田德润实力强
  • adc网站建设wordpress quick chat