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

品牌宣传型网站建设方案国内新闻最新消息今天简短

品牌宣传型网站建设方案,国内新闻最新消息今天简短,app软件开发哪个公司好,wordpress 列表目录 一、递归是什么 二、递归和搜索和回溯算法 专题一、递归 1.汉诺塔问题 2. 一、递归是什么 每每提到递归,我相信第一秒浮现在大多数人脑海中的都是这几个名词“难”,“复杂”,“看不懂”,“不知道在干什么”,一…

目录

一、递归是什么

二、递归和搜索和回溯算法

专题一、递归

1.汉诺塔问题

2.


一、递归是什么

        每每提到递归,我相信第一秒浮现在大多数人脑海中的都是这几个名词“难”,“复杂”,“看不懂”,“不知道在干什么”,一看到递归二字,内心就止不住的恐惧,笔者第一次大量接触递归是在学习二叉树的时候,看看那时候,的确是一看递归就内心发毛,面对几行简简单单的代码却根本看不懂的那种感觉到现在记忆犹新。

        这也是我为什么要写这篇文章的原因--帮助像我一样对递归有恐惧的人客服恐惧。

        其实学完以后你会发现,递归只有一个核心点,在函数体中套用函数体,关键的关键就是找到重复子问题

在这里我们可以把写递归分为三个境界:

第一境界: 会画递归的展开图。

第二境界:可以拿捏二叉树中的递归。

第三境界:可以宏观看待递归

这里提到重要的一点,“宏观看待递归”,有的读者可能会问,什么叫宏观看待递归?其实就是把递归这个函数体看作一个“黑盒”,我们相信这个黑盒可以完成我们的任务,然后再来编写函数体,这样我们就可以发现写递归非常之简单了。

二、递归和搜索和回溯算法

        在学习二叉树的时候,我们肯定都学过前,中,后序遍历吧,这其实就是一种搜索,细致来说叫做深度优先搜索(DFS),而回溯算法又恰巧要大量使用DFS,所以学好递归,其实就是在为搜索和回溯算法打基础,在整个学习过程中,我们会分为四个专题,由浅入深,细致讲解回溯算法。

专题一、递归

1.汉诺塔问题

题目链接如下

面试题 08.06. 汉诺塔问题 - 力扣(LeetCode)

class Solution {
public:void hanota(vector<int>& A, vector<int>& B, vector<int>& C) {dfs(A, B, C, A.size());}void dfs(vector<int>& a, vector<int>& b, vector<int>& c, int n){if (n == 1){c.push_back(a.back());a.pop_back();return;}dfs(a, c, b, n - 1);c.push_back(a.back());a.pop_back();dfs(b, a, c, n - 1);}
};

       在这道题中,最小的子问题是一个柱子上的n的盘子借助另一个柱子将n - 1个盘子转移到第三个柱子上,也是我们编写dfs函数的依据。

2.合并两个有序链表

题目链接如下

21. 合并两个有序链表 - 力扣(LeetCode)

class Solution 
{
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {if (l1 == nullptr)return l2;if (l2 == nullptr)return l1;if (l1->val >= l2->val){l2->next = mergeTwoLists(l1, l2->next);return l2;}else{l1->next = mergeTwoLists(l1->next, l2);return l1;}}
};

在这个问题中,函数dfs的作用就是题目,合并俩个有序链表并返回合并后的头节点。

3. 反转链表

题目链接如下

LCR 024. 反转链表 - 力扣(LeetCode)

class Solution 
{
public:ListNode* reverseList(ListNode* head) {if (head == nullptr || head->next == nullptr){return head;}ListNode* newhead = reverseList(head->next);head->next->next = head;head->next = nullptr;return newhead;}
};

4. 两两交换链表中的节点

题目链接如下

24. 两两交换链表中的节点 - 力扣(LeetCode)

class Solution {
public:ListNode* swapPairs(ListNode* head) {if (head == nullptr || head->next == nullptr){return head;}ListNode* temp = swapPairs(head->next->next);ListNode* Next = head->next;head->next = temp;Next->next = head;return Next;}
};

5.快速幂

50. Pow(x, n) - 力扣(LeetCode)

class Solution {
public:double myPow(double x, int n) {return n < 0 ? 1.0 / pow(x, -(long long)n) : pow(x, n);}double pow (double x, long long n){if (n == 0){return 1.0;}double tmp = pow(x, n / 2);return n % 2 == 0 ? tmp * tmp : tmp * tmp * x;}
};

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

相关文章:

  • 山西建设投资集团有限公司seo顾问服务 品达优化
  • 阿里云突发性能适用于做网站吗策划网络营销方案
  • 精品课程网站建设怎么做网站推广
  • 做商城网站公司吗广告公司起名大全最新
  • 现在用什么cms做网站好磁力宝
  • 网站建设 华南商网网店推广的作用是
  • 怎样免费建一个网站芒果视频怎样下载到本地
  • 那个网站做网编好男生短期培训就业
  • 做视频网站用什么好处珠海百度搜索排名优化
  • 免费申请信用卡办理南宁seo推广
  • 为什么做网站企业网站seo优化外包
  • 摄影网站建设的功能有哪些苏州疫情最新情况
  • 网站集约化平台建设分析seo的研究对象
  • 2020年网络营销案例seo推广价格
  • 做浏览单的网站有哪些深圳网站制作哪家好
  • 淳安千岛湖建设集团网站百度指数关键词未收录怎么办
  • 建站公司咨询如何搜索关键词
  • 网页做二维码哪个网站好seo高端培训
  • 网站** 教程上海何鹏seo
  • 泰安平台公司青岛seo网站排名优化
  • 灵犀科技 网站建设seo如何优化关键词排名
  • 电商的网站设计网址收录入口
  • wordpress用微信登录在哪里可以免费自学seo课程
  • php做网站的优势网络营销推广策划步骤
  • cms建站平台营销型网站和普通网站
  • 免费空间域名可以做淘宝客网站推广吗网上找客户有什么渠道
  • 手机网站打不开的解决方法百度浏览器网址
  • 中山网站开发费用免费推广平台排行榜
  • wordpress 游戏 模板下载整站优化系统厂家
  • 网站授权管理系统怎么做优化百度搜索