算法
文章平均质量分 65
躲不开的基础
GoldenaArcher
Done is better than perfect
展开
-
一些动态规划的练习题
这道题其实是个非典型 DP,用 D&C 和 DP 其实没什么区别……就算用 DP 也没有可以重复地柜的子问题,不过还是试着写了一下。大部分题目是分治的题目,所以 cv 了一下题目……每道题前面大概也空个四五行这样。top down 和 bottom up 都做了。斐波那契数字(同样也可以求序列来着)原创 2023-02-06 10:23:57 · 117 阅读 · 0 评论 -
一些分治的练习题
应该就是 Manhattan Tourist Problem 的简化版,毕竟 Manhattan Tourist Problem 的移动方向更多来着。LC 有原题,但是忘了名字是啥……如果 profit 可以分的话这道题的解法用的就是贪心。这次因为有稍微写一下题目,所以每道题前面大概空个四五行这样?另一种解法,就返回 LCS 的长度而不是 LCS,本质上没啥区别。和上一题解法差不多,换汤不换药。原创 2023-02-03 11:36:21 · 153 阅读 · 0 评论 -
[JavaScript 刷题] 找到所有的排列顺序 (Find All Permutation)
[JavaScript 刷题] 找到所有的排列顺序 (Find All Permutation)解这道题的先决条件:理解什么是递归。这是一个比较经典的递归问题了,一般问的就是寻找出一个 字符串/数字 所有的排列方式,如:abc 的组合方式有:abcacbbacbcacbacab以排列组合来说,组合的可能性为 n!=n×(n−1)×(n−2)×...×1n! = n \times (n - 1) \times (n - 2) \times ... \times 1n!=n×(n−1)×(原创 2021-09-11 07:06:47 · 216 阅读 · 1 评论 -
一些递归的练习题
每道题前面大概会留个十来行空行所以答案会被折叠这样……没有做 2’s complement。some 递归调用回调函数。原创 2023-01-30 08:57:27 · 168 阅读 · 0 评论 -
龟兔指针法
即 Floyd Cycle Detection Algorithm(Floyd 循环检测算法),又名 Floyd’s Tortoise and Hare(佛洛依德的乌龟和兔子),快慢指针法,该算法主要用于检测链表内是否存在环。龟兔指针法的原理相对而言还是比较简单的,以以下链表为例:1234567快慢指针法会在最开始的时候将指针同时指向 :1234567slowfast随后,只需要让快指针在每次移动时,比慢指针多移动一格:1234567slowfast#mermaid-svg-mVUGabWcdIP8w原创 2022-06-15 05:30:00 · 215 阅读 · 0 评论 -
时间复杂度的常用公式及等式
时间复杂度的常用公式及等式加法加法等式∑i=1nc=c+c+c+...+c\sum_{i=1}^n c = c + c + c + ... + c∑i=1nc=c+c+c+...+ccncncn∑i=1ni=1+2+3+...+n\sum_{i=1}^n i = 1 + 2 + 3 + ... +n∑i=1ni=1+2+3+...+nn(n+1)2\frac{n(n+1)}{2}2n(n+1)∑i=1ni2=1+4+9+...+n2\sum_{i=1}^n i^原创 2021-09-13 06:30:57 · 946 阅读 · 0 评论 -
[JavaScript 刷题] 算法中的 时间复杂度 和 空间复杂度
[JavaScript 刷题] 算法中的 时间复杂度 和 空间复杂度时间复杂度空间复杂度通常来说判断一个算法的优劣一般会用 时间复杂度 和 空间复杂度 去进行衡量,花的时间越久的算法相对而言是不太偏好使用的算法。就比如说搬家,一个人如果要搬家就必须先把所有的东西都打包,然后再开车一趟一趟的搬。但是如果 钱(资源 ????) 不成问题的话,就可以雇佣搬家公司,让搬家公司的人来打包,这样一次性就能将所有的东西搬到新的住所。自己一次次的搬东西就要取决于有多少物品需要搬运了,nnn 个物品就需要搬运 nnn原创 2021-09-01 21:31:27 · 447 阅读 · 1 评论 -
双指针总结
双指针总结双指针总共列举了 7 题目:有序数组的 Two Sum两数平方和反转字符串中的元音字符回文字符串归并两个有序数组判断链表是否存在环最长子序列通过这 7 题大概就对双指针的用法有了一定的感觉。对于双指针的应用题来说:题目要有明确的开始和结尾——不一定要是索引,指的时首尾指针相遇就能结束循环迭代的条件多以字符串、数组为题型目前接触到的指针有首尾指针和快慢指针两种。之前还做到过也是使用双指针可以完成的题目:27. Remove Elemen原创 2021-06-23 06:24:25 · 1425 阅读 · 19 评论 -
冒泡排序
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。原创 2021-03-23 22:35:49 · 103 阅读 · 0 评论