# 第六十五周ARTS总结
# Algorithm
0ms | 100.00% Run time
39.2MB | 53.73% Memory
public ListNode partition(ListNode head, int x) {
    // 小于x的节点头
    ListNode smallHead = new ListNode();
    // 小于x的节点尾
    ListNode curSmall = smallHead;
    // 大于等于x的节点头
    ListNode notSmallHead = new ListNode();
    // 大于等于x的节点尾
    ListNode curNotSmall = notSmallHead;
    while (head != null) {
        if (head.val < x) {
            curSmall.next = head;
            curSmall = curSmall.next;
        } else {
            curNotSmall.next = head;
            curNotSmall = curNotSmall.next;
        }
        head = head.next;
    }
    curSmall.next = notSmallHead.next;
    curNotSmall.next = null;
    return smallHead.next;
}
public static class ListNode {
    int val;
    ListNode next;
    ListNode() {
    }
    ListNode(int val) {
        this.val = val;
    }
    ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}
 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Review
# Tip
- 上采样(即放大图片):
- 邻插值算法
 - 双线性差值法
 - 双三次差值法
 
 - 被挂起的进程暂时不参与CPU的调度,直到被激活
 - 在重写
View#onSaveInstanceState一定要注意其返回值情况,必须为AbsSavedState对象 - 三次握手:
- A向B表示想跟B进行连接
 - B收到消息,告诉A准备好和你连接了
 - A收到消息,告诉B我收到你准备连接的信号了,此时开始连接
 
 - 四次挥手:
- A向B表示想跟B断开连接
 - B收到消息,但是B消息没发送完,只能告诉A我知道了
 - B发送完消息,告诉A可以断开连接了
 - A收到消息,告诉B断开连接,此时断开连接
 
 - 挥手的第三次是为了什么:如果只有两次,只能保证B能收到A的信息,不能保证A能收到B的信息,需要双方都确认才行
 
# Share
暂无内容