# 第四十一周ARTS总结
# Algorithm
0ms | 100.00% Run time
38.5MB | 5.77% Memory
public void rotate(int[][] matrix) {
// 由外向内,一圈一圈旋转
// 每一圈的数字一个个的旋转
// 对1*1及以下数组作特殊处理
if (matrix.length <= 1) {
return;
}
int start = 0;
int end = matrix.length - 2;
while (start <= end) {
// 旋转第i个数
for (int i = 0; i <= end - start; i++) {
int temp = matrix[start][start + i];
// 旋转
matrix[start][start + i] = matrix[end + 1 - i][start];
matrix[end + 1 - i][start] = matrix[end + 1][end + 1 - i];
matrix[end + 1][end + 1 - i] = matrix[start + i][end + 1];
matrix[start + i][end + 1] = temp;
}
// 下一圈
++start;
--end;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Review
# Tip
TERM environment variable not set.
解决:将Emulate terminal in output console
打钩HashMap#put
方法判断key是否重复的依据是hashCode
与equals
,其中hashCode
方法更优先- APP启动分类 [1] (opens new window):
- 冷启动
- 热启动
- 温启动
- 冷启动流程 [2] (opens new window):
- 启动APP
- 加载空白
Window
- 创建进程
- 创建
Application
- 启动线程
- 创建
MainActivity
- 加载布局
- 布置屏幕
- 首帧绘制
adb shell am start -W packagename/[packagename].首屏Activity
:用户获取该页面的耗时信息 [3] (opens new window)
# Share
暂无内容