文章

LeetCode周赛前 必读

LeetCode题目限制

OI 学习资料

https://oi.wiki/

注意点

  1. 数据是否需要预处理,比如变0,变-1等。

  2. 关心返回值 long or int ,是否溢出。

时间复杂度

10^6 => O(n)

10^5 => O(n\log_n)

10^3 => O(n^2)

常见取值

序号

原值

目标值

1

10^9

2^{29} ~2^{30}

常见算法时间复杂度

序号

描述

时间复杂度

1

滑动窗口

O(n\log_n)

2

二分查找

O(\log_n)

3

快速排序

O(n\log_n)

位运算

序号

描述

公式

1

补码定义

(~i+1)=-i

2

lowbit

i & -i

3

数学

  1. 不同元素数量是否都一致 = 元素去重数 * 元素最大数 == 长度

图计算

  1. 单源最短路径 权值为正:Dijkstra

相关概念

  1. 子序列:子序列是不改变顺序,但是可以删除其中的某些元素。

  2. 子数组:子数组是数组中连续部分,需要应用到连续部分,可以考虑前缀和、滑动窗口等。

  3. 子集:一个数组的集合属于另一个大的集合,完全被包含。

常见技巧

  1. 对于图找两点之间的最长距离,可以使用parent[]进行记录,因为每个节点的parent只有一个。