算法与数据结构
文章平均质量分 67
Allocator
FOCUS
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
全排列问题回溯解法
经典全排列问题:给定一个序列,输出其所有的全排列结果.原创 2025-08-16 14:48:09 · 251 阅读 · 0 评论 -
凑零钱问题
经典动态规划凑零钱问题,给定面值的硬币如10块,5块,2块等,每一种面值的币数量上不设限制,要求在这些可选的面值用最少数量的硬币去凑齐指定金额的零钱,如果能凑齐则返回对应总数和每一种面值的硬币具体数量,如果不能凑齐则返-1.原创 2025-08-09 10:49:58 · 362 阅读 · 0 评论 -
fibonacci的4种实现
考虑到base解法有不少重复计算的数值,可以用一个数组存放已经计算好的数值,递归计算时可以查看数组里面是否有之前已经计算好的值,使用空间换时间的方法,算法时间复杂度O(N) 空间复杂度O(N)自底向上的解决办法,使用循环替代递归,时间复杂度O(N) 空间复杂度O(N) 循环实现消耗资源更少,所以时间更快.最简单的递归实现,此种实现分线下来会有非常多重复子问题计算,导致时间复杂度为O(2^n)指数级别.fibonacci的4种实现.把n=0也考虑在内。进一步将时间复杂度降低到O(1)原创 2025-07-21 23:21:59 · 402 阅读 · 0 评论 -
python拓扑排序算法实现
按照wiki拓扑排序的说法,拓扑排序是对有向无环图的顶点的线性排序,要求对于顶点u到v的每一个有向边uv顶点u都在v前面.拓扑排序其中一个重要的场景就是对互相有依赖的任务的执行顺序排序本文总结了python如何实现拓扑排序,包括卡恩算法以及深度优先搜索算法这两种排序算法.两种算法都可以帮我们解决涉及到互有依赖的task的执行顺序编排问题.原创 2025-01-09 08:20:34 · 899 阅读 · 0 评论 -
基于snowflake id 的 N 位唯一数字id 生成算法总结
分布式场景下选择snowflake id 生成算法来生成id是常见的技术选型,然而默认情况下snowflake id 生成器生成的id长度为19位数字,有些场景下我们需要的是8位,9位等长度小于19的唯一数字id,这个时候就需要将原有的snowflake id 进行一定的处理才能得到满足要求的指定为数的唯一数字id.本文详细总结一下常用的处理方法以及其优缺点.优点:1. 更加随机且均匀分布的映射,减少碰撞. 2. 保持了 Snowflake ID 的唯一性和分布特性。缺点:高并发场景下id容器碰撞。原创 2024-11-29 22:42:59 · 779 阅读 · 0 评论 -
内存空间对齐
内存空间对齐分析原创 2017-02-23 21:18:24 · 1093 阅读 · 0 评论
分享