标签: 算法
49 个内容
笔记(44)
本文介绍LeetCode二进制手表问题解法。**背景**:手表4小时灯+6分钟灯,亮灯总数为turnedOn。**关键问题**:枚举有效时间并统计二进制1个数。**主要方案**:直接遍历12×60组合,使用`toString(2).split('1').length-1`或`n&(n-1)`位运算计数1,格式化输出时间。回溯法为进阶。
堆是满足堆序性质的完全二叉树,常用数组实现。核心操作优化包括插入的`heapifyUp`修正和删除的空堆检测。应用广泛,如优先队列和Top K问题。优化手段包括Floyd建堆法和TypedArray。存在二叉堆、斐波那契堆等变体,面临并发、内存管理等挑战。未来趋势包括持久化堆和GPU加速。
本文介绍了动态规划在解决最长回文子串问题中的应用。针对该问题,提供了两种解法:一种使用动态规划构建二维数组记录所有子串的回文状态,另一种采用中心扩散法,以每个字符为中心向外扩展。前者时空复杂度均为O(n^2),后者时间复杂度为O(n^2),空间复杂度为O(1)。
本文介绍了求解数组中唯一元素和的问题。分别使用 Rust 和 TypeScript 两种语言,通过 Hashmap 统计数组中每个元素的出现次数,然后过滤出只出现一次的元素并求和。Rust 解法中使用了 `fold` 和 `filter_map` 方法。
本文详解快速排序算法,该算法基于分治策略,通过选取主元并划分数组实现排序。文章讨论了主元选择策略(如随机主元、三数取中),并给出了TypeScript迭代版本的实现。传统递归快排存在堆栈溢出风险,迭代版本通过栈模拟解决了该问题。
本文探讨了反转链表问题。针对该问题,文章提供了两种解决方案:递归和双指针。递归方案的关键在于确定基本情况,而双指针方案则通过迭代改变节点指向来反转链表。文章给出了对应 TypeScript 代码示例。
本文总结了常见的排序算法,包括选择排序、冒泡排序、插入排序、快速排序、堆排序、归并排序、计数排序和桶排序。针对每种算法,文章简述了其原理,并提供了 TypeScript 代码实现。这些算法在时间复杂度、空间复杂度和适用场景上各有特点。
本文介绍了堆这种特殊的树形数据结构,它是一种基于数组的完全二叉树,常用于实现优先级队列。堆分为最大堆和最小堆,分别保证根节点为最大值或最小值。文章提供了最大堆的 TypeScript 实现,包括插入元素和弹出元素的 `heapifyUp` 和 `heapifyDown` 操作。
本文总结了二分查找的常见写法。针对查找单个目标值、查找左侧边界、查找右侧边界三种场景,分别给出了 JavaScript 代码示例,并分析了搜索区间的选择和边界收缩的策略。此外,还展示了二分查找在“最接近的三数之和”问题中的应用。
本周报主要内容包括:1. 探讨了 `vertical-align` 的 `Line-relative values` 和 `Parent-relative values` 的区别。2. 总结了 `scrollIntoView` 的使用方法和参数选项。3. 提供了树结构和列表互相转换的 JavaScript 实现。
本文是为面试准备的礼物,汇总了常见的JS手写题和八股文。手写题包括字符串转换对象、类型体操科里化、汉明距离总和、股票买卖、链表随机节点、二叉树迭代遍历、整数转罗马数字、字母异位词分组等。重点讨论了JS浮点数运算不精确的原因和解决方法,涉及IEEE 754标准、精度丢失等,并解释了Number.MAX_SAFE_INTEGER等特殊值。
本文探讨递归的三种形式:记忆化、分治和回溯。重点讲解回溯法,用于解决N个for循环问题,通过试错和剪枝优化进行暴力搜索,并给出经典例题及代码示例。同时分析了JS中递归与迭代的效率问题,通常迭代效率更高。
动态(5)
那些留在2023年的日子:五月
- Docker 多阶段构建
- TypeScript namespace 的妙用,在生成模版代码的时候可以免导入,直接使用 namespace 获取
- BFS 和 DFS 的优缺点,fiber 为什么选择 DFS
A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set.
The price paid for this efficiency is that a Bloom filter is a probabilistic data structure: it tells us that the element either definitely is not in the set or may be in the set.