算法
文章平均质量分 71
斋藤肥鸟
镁铝
展开
-
算法学习——动态规划入门
很久没有接触动态规划了,通过b站正月点灯笼的视频重新学习了一遍:学习视频地址。总结了一下文字版方便复习:Fibonacci Sequence斐波那契数列用斐波那契数列理解动态规划问题:我们知道斐波那契数列有个递归公式fib(n) = fib(n-1) + fib(n-2)。所以通过递归我们可以轻松的实现求fib(n)JavaScript实现:function fib(n) { if (n == 1 || n == 2) return 1; return fib(n-1) + fib(n-2);原创 2021-02-03 10:23:29 · 226 阅读 · 0 评论 -
KMP算法理解与Java实现
参考字符串匹配的KMP算法 — 阮一峰明白KMP算法的原理后我们思考如何求出给定字符串的部分匹配值数组next,我们当然不可能每次都把所有前后缀写出来,那么我们要思考的就是如果我知道next[0]~next[i-1]的值,能不能求出next[i]? 答案是肯定的。我们以字符串ACCCBAAACCCBAAC为例,依次求出next[i]的值:Java代码实现:public static int[] getNext(String s) { int len = s.length();原创 2021-02-02 17:51:27 · 165 阅读 · 2 评论 -
算法学习—回溯算法—以Leetcode22括号生成问题&&n皇后问题为例
开始想着写个全排列然后逐个判断是否是有效的括号组合。结果不行。1<=n<=8全排列的话,n=5的时候就要有2^5=32次判断n=8就有几百次判断。跑了一下确实不行。然后就看答案了。/** * @param {number} n * @return {string[]} */var generateParenthesis = function (n) { let res = []; // cur :当前字符 left:当前字符左括号 right:当前字符右括号 cons.原创 2021-02-02 10:46:01 · 135 阅读 · 1 评论