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

网站开发报价单模板wordpress站外搜索

网站开发报价单模板,wordpress站外搜索,十堰做网站的有哪些,网络公司发生网站建设费分录📝前言说明: 本专栏主要记录本人递归,搜索与回溯算法的学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码…

📝前言说明:

  • 本专栏主要记录本人递归,搜索与回溯算法的学习以及LeetCode刷题记录,按专题划分
  • 每题主要记录:(1)本人解法 + 本人屎山代码;(2)优质解法 + 优质代码;(3)精益求精,更好的解法和独特的思想(如果有的话)
  • 文章中的理解仅为个人理解。如有错误,感谢纠错

🎬个人简介:努力学习ing
📋本专栏:C++刷题专栏
📋其他专栏:C语言入门基础,python入门基础,C++学习笔记,Linux
🎀CSDN主页 愚润泽

你可以点击下方链接,进行该专题内不同子专题的学习

点击链接开始学习
导论递归 (一) 、递归 (二)
二叉树的深搜穷举 vs 暴搜 vs 深搜 vs 回溯 vs 剪枝
综合练习(一)综合练习(二)
FloodFill算法记忆化搜索

题目

  • 46. 全排列
    • 优质解
  • 78. 子集
    • 优质解


46. 全排列

题目链接:https://leetcode.cn/problems/permutations/description/
在这里插入图片描述

优质解

思路:

  • 画出决策树
    在这里插入图片描述

  • 设计代码

    • 全局变量

      • vector<vector<int>> ans:记录答案
      • path:记录路径
      • bool check[]:记录对应下标的数有没有被使用过【用于剪枝】
    • dfs函数

      • 单个节点函数体处理
        • 把数枚举一遍,检查check,如果没有用过,就加入path并设计check,然后继续dfs下一层
      • 细节问题
        • 回溯:1. path的最后一个数删掉;2. check对应的被删数位置设置成false
          • 两种时机:dfs返回前回溯,dfs返回后回溯
        • 剪枝:用check判断,如果用过了就不进入对应的分支
        • 递归出口:遇到叶子节点,直接添加节点。(其实也是 path == nums.size()

代码:

class Solution {
public:vector<vector<int>> ans;vector<int> path;bool check[7]; // 因为题目的nums的最大长度为 6 void dfs(vector<int>& nums){if(path.size() == nums.size()){ans.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;}}   }vector<vector<int>> permute(vector<int>& nums) {dfs(nums);return ans;}
};

时间复杂度:O(n * n!)
空间复杂度:O(n * n!)


78. 子集

题目链接:https://leetcode.cn/problems/subsets/description/
在这里插入图片描述

优质解

解法一:

决策树(以第一个数为开始,每层判断 选() 或 不选(×)

在这里插入图片描述
dfs函数

  • 全局变量
    • ans记录答案,path记录路径
  • 剪枝(无)
  • 回溯:删掉path最后一个数(当path不为空的时候)
  • 处理单个节点:1. 判断当前节点选不选; 2. dfs下一层

代码:

class Solution {
public:vector<vector<int>> ans;vector<int> path;void dfs(vector<int> & nums, int i) // i 代表选到第几个数了{if(i == nums.size()) // 表示前 n 个全部选完了{ans.emplace_back(path);return;}// 选path.push_back(nums[i]);dfs(nums, i + 1);// 恢复现场path.pop_back();// 不选(不选不用恢复)dfs(nums, i + 1);}vector<vector<int>> subsets(vector<int>& nums) {dfs(nums, 0);return ans;   }
};

时间复杂度: O ( 2 n ) O(2^n) O(2n)
空间复杂度: O ( 2 n ) O(2^n) O(2n)

解法二:

  • 第 n 层:表示该层的子集中选择的元素的个数
  • 下一层枚举的开始位置:上一层的下一个位置
  • 每个节点都是一个子集

决策树

在这里插入图片描述

代码:

class Solution {
public:vector<vector<int>> ans;vector<int> path;void dfs(vector<int> & nums, int pos){ans.emplace_back(path); // 空集一开始就被加进来了for(int i = pos; i < nums.size(); i++){path.push_back(nums[i]);dfs(nums, i + 1);path.pop_back();}}vector<vector<int>> subsets(vector<int>& nums) {dfs(nums, 0);return ans;   }
};

🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

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

相关文章:

  • 网站建设主机配置wordpress快速扒站
  • python 做网站缺点邢台网警
  • 虚拟主机 网站镜像建一个网页需要多少钱
  • 牡丹江市建设行业协会网站代理注册公司的风险
  • 儿童早教网站模板网页版微信网址是多少
  • 网站前台订单功能模块网站模板全屏
  • 科技类网站源码site 危险网站
  • 如何自己编写网站建站还有前途么
  • 网站开发国际化苏州优化外包
  • 杭工e家app是哪个网站做的博物馆网站建设必要
  • 个人网站建立多少钱最新站长seo网站外链发布平台
  • 2014网站怎么备案wordpress ie兼容
  • 运城做网站方式方法崇州市城乡建设局网站
  • 宁波网站排名单页网站还能用吗
  • 口碑好的秦皇岛网站建设价格ppt欢迎页面模板
  • 太原房产网站建设wordpress 写php代码
  • 班级展示网站影视传媒广告公司网站模板
  • 大型网站服务器配置阿里云 网站空间
  • 建10个网站鹤壁建设网站推广公司
  • 网络营销的发展趋势和前景阳江seo网站推广
  • 微信小程序 网站开发wordpress如何生成rss
  • 网站建设所有软件清单wordpress添加一个加载动画
  • 互联网技术学什么汕头百度seo电话
  • 打开自己的网站是别人的域开发商城网站多少钱
  • 大型综合新闻门户网站织梦模板wordpress无法发送邮件
  • 网站建设报价方案doc做网站排名的公司有哪些
  • 京东网站的公司全名甜点网站里的新闻资讯怎么做
  • 网站模板之家官网昆明做网站设计
  • wap网站开发工具北京开公司的基本流程及费用
  • 做seo用什么网站系统广州网络推广选择