# 第四十一周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

# Review

# Tip

  • TERM environment variable not set.解决:将Emulate terminal in output console打钩
  • HashMap#put方法判断key是否重复的依据是hashCodeequals,其中hashCode方法更优先
  • APP启动分类 [1] (opens new window)
    • 冷启动
    • 热启动
    • 温启动
  • 冷启动流程 [2] (opens new window)
    1. 启动APP
    2. 加载空白Window
    3. 创建进程
    4. 创建Application
    5. 启动线程
    6. 创建MainActivity
    7. 加载布局
    8. 布置屏幕
    9. 首帧绘制
  • adb shell am start -W packagename/[packagename].首屏Activity:用户获取该页面的耗时信息 [3] (opens new window)

# Share

暂无内容

更新时间: 10/20/2022, 7:04:01 AM