
刷题
文章平均质量分 75
tanactor
分享cs学习过程中的一些心得,主要是自己的笔记,学到哪随缘更新(^ _ ^)
毕竟是初学者难免会有纰漏,欢迎大家交流指正!
展开
-
C++的next_permutation函数与排列问题解法
是C++标准库中的全排列生成函数,其核心功能是按照字典序生成给定序列的下一个排列。// 默认使用<比较// 自定义比较函数返回值:存在更大排列时返回true,否则返回false并重置为最小排列12时间复杂度:O(n),n为序列长度必须先将序列排序为最小字典序,才能生成所有排列直接修改原序列,生成新排列支持自定义比较规则处理特殊顺序(如大小写混合排序)字典序的本质:排列的比较规则类似于字符串比较,213132因为首位2>1逆序检测:当。原创 2025-03-02 15:20:26 · 820 阅读 · 0 评论 -
离散化思想的简单应用
离散化是一种将大范围数值映射到紧凑区间的技术。当数据值域跨度极大(如1e9)但实际数据点稀疏(如1e5个)时,直接使用数组处理会浪费大量空间。此时可将数据映射到连续的小范围索引,从而高效处理。原创 2025-02-22 14:13:52 · 859 阅读 · 0 评论 -
深度优先搜索(DFS)——八皇后问题与全排列问题
( ^ _ ^ )数据结构好难哇(哭。原创 2025-02-10 22:11:09 · 918 阅读 · 0 评论 -
回溯算法中关于剪枝的一些应用
剪枝是回溯算法的灵魂,核心在于通过问题特性提前终止无效递归。关键步骤明确问题的约束条件分析决策树中哪些分支必然无效设计剪枝条件,用代码实现提前终止通过排序、哈希表等工具辅助剪枝判断。原创 2025-02-05 12:14:58 · 678 阅读 · 0 评论 -
回溯算法简单理解
回溯算法是一种通过试错来解决问题的算法,当发现当前路径无法得到正确解时,会回溯到上一步尝试其他可能。它特别适合解决等。原创 2025-02-05 12:13:23 · 510 阅读 · 0 评论 -
区间增减操作——差分数组
给定一个数组a,其差分数组diff(第一个元素保持不变);对于i > 0(当前元素与前一个元素的差值)。差分数组的性质差分数组的前缀和可以还原原始数组。对差分数组进行区间更新操作,可以高效地反映到原始数组中。差分数组是一种非常实用的工具,特别适合处理区间更新问题。它的核心思想是通过记录相邻元素的差值,将区间更新操作转化为单点更新操作,从而大幅提高效率。原创 2025-02-03 21:55:03 · 792 阅读 · 0 评论 -
小根堆和大根堆——优先队列问题
堆序性:每个节点的值都大于等于(或小于等于)其子节点的值。大根堆:每个节点的值都大于等于其子节点的值,根节点是最大值。小根堆:每个节点的值都小于等于其子节点的值,根节点是最小值。完全二叉树:除了最后一层,其他层的节点都必须填满,且最后一层的节点都靠左排列。堆是一种高效的数据结构,在解决优先队列、TopK问题、堆排序等问题时具有显著优势。理解堆的性质和操作,并掌握其应用场景,对于提升算法能力和解决实际问题至关重要。希望本文能够帮助你更好地理解和应用堆结构!有一堆石头,每块石头的重量都是正整数。原创 2025-02-03 21:22:16 · 1288 阅读 · 0 评论 -
A+B problem(高精度加法)
感觉网上的高精度加法很多都很麻烦,lz写了一个可能 还算简单的,给大家参考(自留)好难好难,感觉没有头绪哇。原创 2025-01-24 18:08:09 · 329 阅读 · 0 评论 -
A*B problem(高精度乘法)
(高精度加在上篇,感兴趣请移步查看)原创 2025-01-24 18:59:13 · 193 阅读 · 0 评论 -
出栈序列问题——卡特兰数
卡特兰数(Catalan Number)是一系列在组合数学中经常出现的自然数。卡特兰数的第 n 项(记作c n表示许多组合问题的解的数量。C01C11C22C35C414C542C01C11C22C35C414C542Cn1n12nnCnn11n2n其中,2nnn2n是组合数,表示从 (2n) 个元素中选取 (n) 个元素的组合数。栈的性质。原创 2025-02-02 21:46:43 · 894 阅读 · 0 评论