Qoogle

成为一名优秀软件工程师的奋斗史

小旭讲解 LeetCode 60. Permutation Sequence
小旭讲解 LeetCode 60. Permutation Sequence

给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:给定 n 和 k,返回第 k 个排列。说明,给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]

小旭讲解 LeetCode 312. Burst Balloons
小旭讲解 LeetCode 312. Burst Balloons

现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。

小旭讲解 LeetCode 887. Super Egg Drop
小旭讲解 LeetCode 887. Super Egg Drop

你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N  共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。

小旭讲解 LeetCote 1293. Shortest Path in a Grid with Obstacles Elimination
小旭讲解 LeetCote 1293. Shortest Path in a Grid with Obstacles Elimination

给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。 如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1。

递归
递归

文章目录 为什么使用递归? 递归的特性 举个例子 记忆化递归 三个经典问题 思考题 LeetCode 相关题目... » 阅读全文

树状数组(Binary Indexed Tree)
树状数组(Binary Indexed Tree)

树状数组或二叉索引树(英语:Binary Indexed Tree),又以其发明者命名为Fenwick树。文章先介绍低位运算(lowbit)的基本知识,再提及如何将一个整数划分为Log n个区间的运算过程,进而延展到如何将线性序列以树行结构进行存取,最后介绍了高级数据结构——树状数组的两个基本操作——查询前缀和与单点增加。

后缀数组(Suffix Array)
后缀数组(Suffix Array)

本文介绍后缀数组的定义与构建的过程。首先,文章介绍什么是后缀数组,随后讲解了最自然的朴素算法。为了引出更高效的算法,文章首先提及倍增思想与基数排序的背景基础知识。接着,通过模拟演练的方式一步一步地演示如何创建后缀数组。将构建的抽象过程形象地展示出来,使读者更易理解。