拥抱新技术, 但不能事事都依赖llm和第三方库的shortcut. 建立自己的知识体系很重要, 体系化的学习需要时间和耐心, 从长期来看回报丰厚
——理论上,用线段树(segment tree)或区间树去做“座位区间占用/释放”的确可以优雅地描述库存状态,但问题在于:12306的问题不在算法上能不能描述,而在于并发规模 + 数据一致性 + 分布式状态的复杂度。
假设一列车有 N 站(N ≤ 30),那每个座位的区间组合就是 N*(N-1)/2,大约几百个区间。
线段树能做什么:
[L,R) 占用;[L,R) 是否空闲;在单机环境下这是完美方案,时间复杂度 O(log N),极快。
现实中: