menu

Leetcode Mr.How知其所以然之递归算法问题归集主题模块

Leetcode 递归算法问题归集 主题模块


原创文章,版权所有,搬运文章,转发请注明polyaD,原文链接https://polyad.github.io/tags 如有任何问题或疑惑,请在后面留言或者发邮箱留言polyaluthor@gmail.com,加微信polyad或者qq数学算法开发10群 282642152进行探讨,请备注:Mr.How。
前言
  您好,欢迎来到我的引导学习记录笔记,我是polayD, Mr.How先生。本系列依据《怎样解题》,George Polya的方法以及知其所以然模式启发,进行拓展而成。希望在这里,您能找到引导式学习的快乐,逐步建立与形成自己的知识同化模式,摆脱碎片化信息的烦扰,掌握快速学习与深度知识系统化的技能,期待与您共同进步。
  信息碎片化的时代,随波逐流我们将一无所获,特别是当没有形成系统垂直化的知识模块,很多时候我们只能人云亦云,面对海量信息,无法判别重要性,相关性,有效性,普通的个人很难在信息洪流中找到自己的定位。深度式的知其所以然的引导式学习,可避开信息碎片化旋涡,同时突破信息茧房的束缚。下面波利亚将引领您,进入一个这个基础主题模块的海洋,带上自己的定位导航,抓紧好奇心的船舵,扬帆深入得在这片海洋里探索,前进,自我迭代进化。
**理念与标准设定迭代模块**
I.理念迭代:
1.缝合现实与理论的鸿沟。
2.缝合理论主题与练习的鸿沟。
3.认知升级:掌握方法论比掌握知识点更重要。
4.设立量化目标:标准框架与计划实施作业,建立模块化迭代。
5.潜意识出发平缓引导:第一人称为主,进行自我提问与引导,主要是让自我潜意识有参与感。
6.一根针插到底的解决问题:只要内心存在疑问,就应该把问题写入问题列表,随便再进行解读。彻底明白一个系统模块,胜过离散的弄清单个问题。
7.信息资源发散式归集:以此问题为核心支点,散发结合所有可能收集到的认知,整合解读,不唯教科书论,不唯单一信息来源论。尽量多查找一手资源。
8.问题全流程迭代:现实3D场景->发现问题->设立标准->提出问题->描述问题信息->解决问题->实践验证->抽象化->理论化->一般化->主题框架化->重新应用于新的3D场景。 9.导航路径:同类主题区别层面->理论层面->系列问题归集层面->实际问题解决层面
10.细节是魔鬼,细节决定了专业的高度
11.实现从0开始逐步构建到框架,从迭代框架实现知识的同化

II.标准与实施设定迭代:

 首先,做什么事之前,先要设定一下我们的小目标, 我们的整体导航路径: 1.主题解析,先难后易,深入浅出,案例拆解,举一反三。
2.主要解决两个问题:如何思考这个问题?如何使用这个解决问题?
3.尽可能所有收集参考资料,实践以后,再全部用自己的语言进行复述回答,将思路,事无巨细的写出来,特别是关键节点。
4.陆续将提供中英文版本。
5.问题解决同化迭代模式:理念与标准设定迭代模块,计划与实施迭代模块,路径框架迭代模块,问题引导列表分析迭代模块,执行分析步骤迭代模块,动画与代码实现迭代模块,方法工具归集迭代模块,反思批判迭代模块,十字定位迭代模块,意义与主题迭代模块,拓展应用迭代模块
6.知识点主题模块同化迭代模式:理念与标准设定迭代模块,计划与实施迭代模块,路径框架迭代模块,意义背景迭代模块,十字定位迭代模块,问题引导列表分析迭代模块,区别迭代模块,反思批判迭代模块,拓展应用迭代模块
计划与实施迭代模块

**问题引导列表分析迭代模块**
  将如下基础主题模块化

**路径框架迭代模块**

目录

尾递归归集
把所有用到的内部变量改写成函数的参数。 1.阶乘函数

递归
function factorial(n) {
  if (n === 1) return 1;
  return n * factorial(n - 1);
}

factorial(5) // 120

尾递归 
function factorial(n, total) {
  if (n === 1) return total;
  return factorial(n - 1, n * total);
}

factorial(5, 1) // 120  

提供一个正常形式的函数 
function tailFactorial(n, total) {
  if (n === 1) return total;
  return tailFactorial(n - 1, n * total);
}

function factorial(n) {
  return tailFactorial(n, 1);
}

factorial(5) // 120  

函数式编程柯里化(currying):将多参数的函数转换成单参数的形式
function currying(fn, n) {
  return function (m) {
    return fn.call(this, m, n);
  };
}

function tailFactorial(n, total) {
  if (n === 1) return total;
  return tailFactorial(n - 1, n * total);
}

const factorial = currying(tailFactorial, 1);

factorial(5) // 120

[递归算法Leetcode归集] (https://leetcode.com/tag/recursion/)
easy
344 Reverse String
509 Fibonacci Number
206 Reverse Linked List
21 Merge Two Sorted Lists
231 Power of Two
234 Palindrome Linked List
326 Power of Three
342 Power of Four
203 Remove Linked List Elements

Medium
1265 Print Immutable Linked List in Reverse
1106 Parsing A Boolean Expression 894 All Possible Full Binary Trees 544 Output Contest Matches 1823 Find the Winner of the Circular Game 241 Different Ways to Add Parentheses 1545 Find Kth Bit in Nth Binary String 776 Split BST 439 Ternary Expression
24 Swap Nodes in Pairs
394 Decode String
247 Strobogrammatic Number II
486 Predict the Winner
255 Verify Preorder Sequence in Binary Search Tree
143 Reorder List
779 K-th Symbol in Grammar
1922 Count Good Numbers 2 Add Two Numbers
50 Pow(x, n)

Hard 1106 Parsing A Boolean Expression 761 Special Binary String
770 Basic Calculator IV
736 Parse Lisp Expression 25 Reverse Nodes in k-Group
772 Basic Calculator III
248 Strobogrammatic Number III
60 Permutation Sequence 224 Basic Calculator 233 Number of Digit One
1808 Maximize Number of Nice Divisors
10 Regular Expression Matching
44 Wildcard Matching


#参考资料


一级资料文献与书籍及重要作者
文献:
书籍:
博客:
论坛:
视频:

二级资料:他人加工且有观点及大众资料
博客: 论坛:
视频:


返回顶部



评论:


技术文章推送

知其所以然主题模块分享

微信搜索公众号: How先生polyad
wechat 微信公众号:How先生polyad