
算法与数据结构
文章平均质量分 69
Allocator
FOCUS
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 330 阅读 · 0 评论 -
python拓扑排序算法实现
按照wiki拓扑排序的说法,拓扑排序是对有向无环图的顶点的线性排序,要求对于顶点u到v的每一个有向边uv顶点u都在v前面.拓扑排序其中一个重要的场景就是对互相有依赖的任务的执行顺序排序本文总结了python如何实现拓扑排序,包括卡恩算法以及深度优先搜索算法这两种排序算法.两种算法都可以帮我们解决涉及到互有依赖的task的执行顺序编排问题.原创 2025-01-09 08:20:34 · 819 阅读 · 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 · 595 阅读 · 0 评论 -
LeetCode-202 快乐数
描述编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False来源:力扣(LeetCode)链接:https://leetcode-cn.com...原创 2020-04-30 23:16:20 · 264 阅读 · 0 评论 -
内存空间对齐
内存空间对齐分析原创 2017-02-23 21:18:24 · 1058 阅读 · 0 评论