介绍了计算机科学中的重要概念,包括二分查找的对数时间、数组和链表的区别、递归的使用、散列表的性能、图算法如广度优先搜索及拓扑排序、动态规划在背包问题中的应用,以及树结构的效率。还探讨了 MapReduce、布隆过滤器和局部敏感散列算法等高级数据结构和算法,强调了不同方法在解决具体问题时的适用性和优缺点。
介绍了搜索推荐的实现方式,包括模糊匹配、相似性计算和纠错等。通过动态规划算法解决模糊匹配问题,结合最长公共子串和最长公共子序列方法计算字符串相似性,提供了相关代码示例和应用场景,如 git diff 的实现基础。
探讨了高性能短链系统的设计思路,涵盖短链的优点、工作原理及生成方法。通过哈希算法和自增序列生成短链,并解决哈希冲突和高并发问题。引入 openResty 提升并发性能,强调技术点如布隆过滤器、页分裂等对系统设计的影响,提供多种设计方案以提高系统效率和可扩展性。
介绍了 ketamahash 和 murmurhash 两种哈希算法的特点及结合应用。ketamahash 作为一致性哈希算法用于路由虚拟节点,murmurhash 则因其高效的散列性能用于计算 key 的 slot 值。二者结合可实现高效的分布式路由算法,适用于 redis cluster 等场景,并强调学习需亲自实践以真正掌握技术。
给定一个整数数组 nums 和目标值 target,要求找到数组中和为目标值的两个整数,返回其索引。通过双层循环遍历数组,判断两数之和是否等于目标值,若满足条件则返回对应索引对 [i, j]。
集合的实现
"JavaScript数据结构与算法-集合练习"继续阅读
散列的实现
"JavaScript数据结构与算法-散列练习"继续阅读
字典的实现
"JavaScript数据结构与算法-字典练习"继续阅读
详述了如何使用 JavaScript 实现单向链表、双向链表和循环链表,包括节点的查找、插入、删除等操作。同时,提供了两个练习题,分别是实现让当前节点向前或向后移动 n 个节点的方法,帮助读者更好地理解和掌握链表的操作。
队列的实现
"JavaScript数据结构与算法-队列练习"继续阅读