1 求范围内的数字个数

求 0 和 4 中间的数字个数

1.1 既不包含 0,也不包含 4,即 (0,4)

4 - 0 - 1 = 3

1.2 包含 0 或 4,即 (0,4] 或是 [0,4)

4 - 0 = 4

1.3 既包含 0 又包含 4,即 [0,4]

4 - 0 + 1 = 5

2 求范围内的数字个数

求 low 和 high 中间的数字个数

1.1 既不包含 low,也不包含 high,即 (low,high)

high - low - 1 = ...

1.2 包含 low 或 high,即 (low,high] 或是 [low,high)

high - low = ...

1.3 既包含 high 又包含 low,即 [low,high]

high - low + 1 = ...

3 数组遍历模版

3.1 从小到大遍历

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
遍历数组 [low,high]

index = low; index <= high; index++

比如说:

[0,2]

index = 0; index <= 2 - 0; index++

[9,12]

index = 9; index <= 12; index++

3.2 从大到小遍历

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
遍历数组 [low,high]

index = high; index >= low; index--

比如说:

[0,2]

index = 2; index >= 0; index--

[9,12]

index = 12; index >= 9; index--

4 数组中的 length

length = high - low + 1

即 [low, high]

5 对于 high - low + 1 和 high - low 的理解

对于从 low 到 high 的数组,我们将 low 和 high 全部带上,画成点,然后将响相邻点之间连成线,那么 low - high + 1 其实指的是节点的个数,而 low - high 指的是边数。

假如 low = 1、high = 3,那么画成点和边就是下面这个样子

我们可以看到,节点数 = high - low + 1 = 3 - 1 + 1 = 3,边数 = high - low = 3 - 1 = 2

所以数组长度等同于节点数