有趣的算法题热热身:灯泡开关
通过上面的图例,我们可以很清楚地看到,每一轮都会切换一批灯泡。关键是可能切换到之前已经切换过的灯泡,....
一种优化的方法:记忆化搜索
上面的做法可以得到最优解,但有一个问题。如下例,以15为起点的时候,会尝试把6->5->4->3->....
最容易学习和最难学的编程语言Top 5榜单
HTML 是用来为大多数网页编码的语言。它使用标签和元素来定义如何显示文本、图像和互动形式。HTML....
Trie树数据结构的实现原理和题目实践
Trie 树又叫字典树、前缀树、单词查找树,是一种二叉树衍生出来的高级数据结构,主要应用场景是处理字....
一道非常经典的回溯算法问题:子集划分问题
即,将 n 个标记了不同序号的球(标号为了体现顺序的差异),放入 k 个标记了不同序号的盒子中(其中....
如何用回溯算法来解决数独问题
算法的核心思路非常非常的简单,就是对每一个空着的格子穷举 1 到 9,如果遇到不合法的数字(在同一行....
hash表、快排与二分查找:两数之和
从这里的分析我们其实可以知道,这本质上其实是一个搜索问题,假如我知道第一个数字是2,而target是....
Git引出一个经典的算法问题:最近公共祖先
这二者最直观的区别就是:merge 方式合并的分支会看到很多「分叉」,而 rebase 方式合并的分....
所有递归代码都可以转为非递归代码
之所以所有的递归都能转为迭代算法是因为递归借助函数调用,函数调用本身就是基于调用栈这种结构实现的,只....
一种比线段树还高效的区间算法
但这里有个很明显的问题,就是我们的数组f[i,j]定义的不合理,因为里面很多的小区间没有用上,比如长....
一个迷你版类Unix操作系统
Minix 一开始向使用者收取极低的授权费,直到 2004 年,塔能鲍姆重新架构与设计了整个系统,更....
动态规划:8行代码搞定最大子数组和问题
这种解法最简单,我们把所有子数组找出来,然后依次计算其和,找出一个最大的出来,比如给定数组[1,2,....
供个人和企业使用的最佳开源低代码和无代码平台列表
低代码/无代码的主要概念并不新鲜,它可以追溯到十多年前的无代码编程 (PWCT) 和类似系统。但是,....
如何将前中后序的递归框架改写成迭代形式
之前经常讲涉及递归的算法题,我说过写递归算法的一个技巧就是不要试图跳进递归细节,而是从递归框架上思考....
一文详细了解Prim最小生成树算法
像图论算法这种高级算法虽然不算难,但是阅读量普遍比较低,我本来是不想写 Prim 算法的,但考虑到算....