
算法笔记
文章平均质量分 79
PXM的算法星球
前acmer 软工学生 java后端 算法爱好者
展开
-
【算法笔记】大厂笔试/蓝桥杯/ICPC必学 根号分治(附板子)
根号分治是一种将问题按规模划分为不同子问题分别处理的算法策略。其核心思想是通过设定合理的阈值(通常为n\sqrt nn),将元素分为高频和低频两类,分别采用不同的处理方法,从而达到平衡时间复杂度的目的。根号分治算法通过将问题元素按规模分类,分别采用不同的处理策略,有效平衡了时间复杂度。在处理大规模图论问题时,该策略常能显著提升效率,避免暴力枚举带来的高开销。原创 2025-03-31 11:11:30 · 973 阅读 · 0 评论 -
【算法笔记】线段树 大厂笔试/蓝桥杯/ICPC必学 C++/Java实现
在算法和数据结构的世界中,线段树(Segment Tree)是一种用于高效执行区间查询和更新操作的强大工具。无论是在竞赛编程、数据库查询优化,还是在实时数据处理系统中,线段树都展示出其卓越的性能。原创 2025-02-23 18:31:26 · 317 阅读 · 0 评论 -
【算法笔记】字符串哈希 大厂笔试/蓝桥杯/ICPC必学 C++/Java实现
字符串哈希是一种将字符串映射为固定大小的整数的方法,常用于字符串的比较、搜索、去重等操作。通过将字符串转换为哈希值,我们可以通过比较哈希值而不是直接比较字符串内容来提高性能。在一些算法中(如字符串匹配、字典树等),哈希值的计算和比较能显著减少复杂度。原创 2025-02-22 22:04:28 · 421 阅读 · 0 评论 -
【算法笔记】大厂笔试/蓝桥杯/ICPC必学 树状数组用法大全(附板子)
更新操作(Add):更新某个位置的值,复杂度为 O(log n)。查询操作(Sum):查询某个位置的前缀和,复杂度为 O(log n)。树状数组的最大特点就是通过巧妙的二进制分解,使得每次更新或者查询时,只需要修改/访问一部分数组元素,从而大大提高了效率。原创 2025-02-21 13:29:13 · 431 阅读 · 0 评论 -
【面试/竞赛必备算法】动态规划
动态规划的核心在于定义合适的状态。状态应该包含问题的关键信息,并且能够刻画问题的特征。通常情况下,状态可以是一个或多个变量的组合。原创 2024-04-22 14:22:48 · 898 阅读 · 0 评论 -
【面试/竞赛必备算法】字典树(tire)
从根节点开始,沿着单词的每个字符向下遍历,如果某个字符对应的子节点不存在,则说明字典树中不存在该单词;从根节点开始,沿着前缀的每个字符向下遍历,直到到达前缀的最后一个字符节点,然后通过DFS(深度优先搜索)遍历以该节点为根的子树,收集所有以该前缀开头的单词。除了表示字符之外,节点可能还存储其他信息,如该节点对应的字符是否是一个单词的结束,或者该单词在词典中出现的频率等。将一个新的单词插入字典树中。从根节点开始,沿着单词的每个字符向下遍历,如果某个字符对应的子节点不存在,则创建新的子节点;原创 2024-04-23 21:26:00 · 514 阅读 · 0 评论