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

宿州做网站的公司微信营销典型案例

宿州做网站的公司,微信营销典型案例,沧州英文网站制作,高职高专 网站建设与维护个人主页 : zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 文章目录 前言1 46. 全排列1.1 分析1.2 代码 2 78. 子集2.1 分析2.2 代码 前言 之前提到递归、搜索和回溯介绍: 【递归、搜索和回溯】递归、搜索和…

个人主页 : zxctscl
专栏 【C++】、 【C语言】、 【Linux】、 【数据结构】、 【算法】
如有转载请先通知

文章目录

  • 前言
  • 1 46. 全排列
    • 1.1 分析
    • 1.2 代码
  • 2 78. 子集
    • 2.1 分析
    • 2.2 代码

前言

之前提到递归、搜索和回溯介绍: 【递归、搜索和回溯】递归、搜索和回溯介绍及递归类算法例题,继续来看着类型的题目

1 46. 全排列

在这里插入图片描述

1.1 分析

穷举也就是枚举

  1. 画决策树:越详细越好
    当情况不符合的时候就剪枝

在这里插入图片描述

  1. 设计代码
    (1)全局变量
    需要记录的东西
    二维数组int[][] ret来记录结果,用int[] path记录路径

用一个布尔类型数组bool[] check,来判断这个路径下标对应的数是否使用过,就实现了剪枝。
枚举1的时候在check里面查看是否已经用了,

(2)dfs函数
仅需关心,每一个节点该干什么事情。

细节:
回溯:(1)path向上走的时候,减掉最后一个元素;(2)path去掉最后一个元素时候,最后一个元素把check修改为flase
剪枝:check实现
递归出口:遇到叶子结点,直接添加结果。

1.2 代码

class Solution {vector<vector<int>> ret;vector<int> path;bool check[7];
public:vector<vector<int>> permute(vector<int>& nums) {dfs(nums);return ret;}void dfs(vector<int>& nums){if(nums.size()==path.size()){ret.push_back(path);return;}for(int i=0;i<nums.size();i++){if(check[i]==false){path.push_back(nums[i]);check[i]=true;dfs(nums);//恢复现场path.pop_back();check[i]=false;}}}
};

2 78. 子集

在这里插入图片描述

2.1 分析

解法一:

  1. 决策树
    ×表示不选,√表示选
    在这里插入图片描述

  2. 设计代码
    全局变量:(1)用int[] path来记录路径2)用int[][] ret存放最终结果

dfs函数:
dfs(nums,i)传入数组,i位置选还是不选;
选:path±nums[i];再去下一层dfs(nums,i+1)
不选:直接去下一层dfs(nums,i+1)

细节问题:
剪枝
回溯:在选择到时候path-=nums[i]
递归出口:到叶子结点时候i==nums.size()
在这里插入图片描述

解法二:

  1. 决策树
    看子集元素个数,要么0个,要么一个,要么两个,只从元素后面开始选择
    刚开始就是空集
    一个元素有:1,2,3
    两个元素,再一个元素基础上添加一个
    三个元素,再两个元素基础上添加一个
    在这里插入图片描述

  2. 设计代码
    全局变量:(1)用int[] path来记录路径 (2)用int[][] ret存放最终结果

dfs函数:
dfs(nums,pos)从pos位置开始;

for(i=pos;i<nums.size();i++)
{path+nums[pos];dfs(nums,i+1);path-最后一个元素}

细节问题:
剪枝
回溯:
递归出口:没有递归出口

2.2 代码

解法一:

class Solution {vector<vector<int>> ret;vector<int> path;
public: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;}//选path.push_back(nums[pos]);dfs(nums,pos+1);path.pop_back();//不选dfs(nums,pos+1);}
};

解法二:

class Solution {vector<vector<int>> ret;vector<int> path;
public:vector<vector<int>> subsets(vector<int>& nums) {dfs(nums,0);return ret;}void dfs(vector<int>& nums,int pos){ret.push_back(path);for(int i=pos;i<nums.size();i++){path.push_back(nums[i]);dfs(nums,i+1);path.pop_back();}}
};

有问题请指出,大家一起进步!!!

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

相关文章:

  • 沈阳做网站seo品牌公关公司
  • 企业商城网站建设开发网站收录提交入口
  • 如何制作学校网站百度首页网站推广多少钱一年
  • wordpress视屏站秦洁婷seo博客
  • 常用的建站软件有哪些上海热点新闻
  • 电商网站怎么做搜索电商数据网站
  • 做有源代码的网站有什么好处阿里指数网站
  • 网站的后台管理免费发布信息的网站平台
  • 公司官方网站建设网络营销外包公司
  • 东莞大型网站建设公司十个有创意的线上活动
  • 北京网站制作的公司网站网络营销推广
  • 内容分发网络CDN可以建设网站吗50个市场营销经典案例
  • 温州 网站优化网络舆情分析报告
  • 珠海做快照网站电话淘宝排名查询工具
  • wordpress建站教程jiuyou郑州做网站推广资讯
  • 丽江网络推广宁波好的seo外包公司
  • 湖北招聘网seo快速排名软件推荐
  • wordpress新建网站上海seo推广方法
  • 在什么网站做外贸seo运营招聘
  • 做网站的主要作用新闻热点大事件
  • 公司网站可直接购物支付设计公司网站模板
  • 建立网站需要多少钱萍畜湖南岚鸿首选小红书关键词排名
  • 花钱让别人做的网站版权是谁的软文范例大全500
  • 软件 行业门户网站色盲眼镜
  • 日本做瞹瞹嗳视频网站上海专业的网络推广
  • 百度提交网站入口网站宣传软文是什么意思
  • 百度站长工具seo查询友情链接实例
  • 网站开发 工具口碑营销5t
  • wordpress 手动安装seo排名优化服务
  • 西安网站排名哪家公司好百度商家入驻