# 第四十六周ARTS总结

# Algorithm

0ms | 100.00% Run time
41.8MB | 5.16% Memory

public int maxSubArray(int[] nums) {
    // 思路
    // 1. 记start为0
    // 2. 从start开始遍历
    // 3. 如果start到当前索引之间的数之和大于零,start不变,否则start等于当前的索引,继续遍历

    int max = nums[0];

    int sum = nums[0];

    for (int i = 1; i < nums.length; i++) {
        int temp = nums[i];

        if (sum < 0) {
            sum = temp;
        } else if (sum + temp > 0) {
            sum += temp;
        } else {
            sum = temp;
        }

        if (sum > max) {
            max = sum;
        }
    }

    return max;
}
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

# Review

# Tip

  • 给主活动指定的label不仅会成为标题栏中的内容,还会成为应用程序显示的名称
  • 定义菜单的步骤:
    1. resmenu文件夹下新建一个Menu Resource File
    2. 重写onCreateOptionsMenu方法来定义菜单,getMenuInflater().inflate(R.menu.main, menu);
    3. 重写onOptionsItemSelected方法用于响应菜单点击事件
  • startActivity会自动将android.intent.category.DEFAULT添加到Intent
  • 返回数据给上一个活动额步骤:
    1. startActivityForResult(Intent intent, int requestCode)启动活动
    2. 上一个活动中实现onActivityResult(int requestCode, int resultCode, Intent data)方法
    3. 被启动的活动在销毁前setResult(int resultCode, Intent data)
  • 活动被回收了怎么办:可以在onSaveInstanceState中保存临时数据,并在onCreate中恢复数据,但最好在onRestoreInstanceState方法中恢复数据
  • onNewIntentonRestart的区别:
    1. 只有在活动被恢复的时候才会回调onRestart
    2. onNewIntentstartActivity有关
  • 可以通过android.os.Process.killProcess(android.os.Process.myPid());杀死当前进程
  • Button会自动将英文字母转成大写,可通过textAllCaps来禁止
  • 可以直接在自定义View的构造函数中用LayoutInflater.from(context).inflate(R.layout.title, this);引入布局
  • ListView的缺点:
    • 需要技巧来提升运行效率
    • 不能横向滚动

# Share

暂无内容

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