力扣上有几千个问题,几十个tag。一个问题往往有好多个tag,如何高效地练习是一个问题。首先对不同的tag进行划分,大致可以分为 以下三类:
- 算法设计范例
- 算法与数据结构
- 优化技巧
在LeetCode的众多tag中,以下是一些常见的可以被归类为“优化技巧”的标签:
双指针:这是一种常见的优化技巧,用于解决需要遍历数据结构的问题,如数组或链表。
滑动窗口:这是一种处理数组或列表问题的策略,特别适合处理求最大、最小、最长、最短等问题。
位操作:这是一种使用位级操作来优化计算的技巧,如位移、按位与、按位或等。
哈希表:这是一种使用哈希表来优化查找效率的技巧。
快慢指针:这是一种特殊的双指针技巧,常用于解决链表中的问题,如寻找中点、检测环等。
二分查找:这是一种在有序集合中查找特定元素的策略,它每次比较中间的元素,将查找的规模减半,从而达到快速查找的目的。
并查集:这是一种处理集合合并和查找问题的数据结构,可以优化某些图论问题的解决效率。
堆优化:这是一种使用堆来优化数据访问效率的技巧,常用于解决求最大值、最小值、中位数等问题。
这些都是常见的优化技巧,可以根据具体的问题选择合适的技巧。