Boyer-Moore 多数表决算法 Boyer-Moore多数投票算法旨在在线性时间和常量空间内找到数组中的主要元素(出现次数超过一半的元素)。该算法通过维护候选元素和计数器来实现,适用于需要查找出现频率超过特定比例(如n/3)的元素的场景。 主要元素 (1) Boyer-Moore算法 (1) 数组 (5) 计数器 (1) 线性时间 (1) 空间复杂度 (3) 2024年10月22日 | 阅读 14
构造 LinkedList 的深层复制 本文介绍了如何深度复制带随机指针的链表。通过使用字典映射原节点到新节点,我们实现了两个遍历:第一次创建新节点,第二次设置它们的 `next` 和 `random` 指针。这种方法确保在 O(n) 时间和空间复杂度内完成复制,解决了带随机指针链表的复杂性问题。 链表 (1) 深度复制 (1) 随机指针 (1) 时间复杂度 (6) 空间复杂度 (3) 字典 (2) 2024年10月9日 | 阅读 93
斐波那契数列:递归、记忆和最优方法 本文探讨了三种在 C# 中计算斐波那契数列的方法:递归、记忆化和最优算法。斐波那契数列是一个基础数学序列,通过不同方法的比较,我们分析了各自的时间和空间复杂度。递归方法虽然简单,但效率低下;记忆化技术优化了计算效率;最优方法则在空间使用上更为高效。 斐波那契数列 (1) 递归 (2) 记忆化 (2) 最优算法 (1) 时间复杂度 (6) 空间复杂度 (3) 2024年10月1日 | 阅读 14