常用技巧
# 常用技巧
# 数组
# 遍历二维数组
- 斜着遍历二维数组的右上角
// 如数组
// {
// {1,2,3},
// {4,5,6},
// {7,8,9},
// }
// 遍历之后的结果是2,6,3。相当于遍历对角线上面的元素
for(int l=2;l<=n;l++){
for(int i=0;i<=n-l;i++){
int j=i+l-1;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
// 向右上斜着遍历。
n = len(dp)
for l in range(1, n):
for i in range(n - l):
j = l + i
dp[i][j] .....
1
2
3
4
5
6
2
3
4
5
6
# 方向数组
// 方向数组 d 是上下左右搜索的常用手法
int[][] d = new int[][]{{1,0}, {0,1}, {0,-1}, {-1,0}};
// 获得上下左右的坐标
for (int k = 0; k < 4; k++) {
int x = i + d[k][0];
int y = j + d[k][1];
}
1
2
3
4
5
6
7
2
3
4
5
6
7
编辑 (opens new window)
上次更新: 2024/05/24, 11:36:46