ARTS打卡第二周 - National Day

首先祝福祖国七十周年华诞!

image

Algorithm

算法题

1
2
3
4
5
6
7
8
9
10
给出两个 **非空** 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 **逆序** 的方式存储的,并且它们的每个节点只能存储 **一位** 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

> 示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

这里就不说暴力破解方法了。这里需要注意的是,题目中并未明确说两个链表长度一定相等,直接上代码:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode node = null;
ListNode p = null;
boolean first = true;
int lastFull = 0;
while(l1 != null && l2 != null) {
int sum = lastFull + l1.val + l2.val;
int v = sum;
if (sum >= 10) {
v = sum % 10;
lastFull = sum / 10;
} else {
lastFull = 0;
}
ListNode c = new ListNode(v);
if(first) {
p = c;
node = p;
first = false;
} else {
p.next = c;
p = p.next;
}
l1 = l1.next;
l2 = l2.next;
}
if (l1 != null) {
lastFull = process(l1, lastFull, p);
} else if (l2 != null) {
lastFull = process(l2, lastFull, p);
}
if (lastFull != 0) {
p.next = new ListNode(lastFull);
}
return node;
}

private int process(ListNode l, int lastFull, ListNode p) {
while (l != null) {
int sum = l.val + lastFull;
int v = sum;
if (sum >= 10) {
v = sum % 10;
lastFull = sum / 10;
} else {
lastFull = 0;
}
p.next = new ListNode(v);
p = p.next;
l = l.next;
}
return lastFull;
}
}

Review

Review了gRPC + JSON的文档,这种方式并不是主流,但是如果有各种原因无法使用ProtoBuf,又想使用gPRC的高效,那么这种方式算是一种折中。

grpc-with-json

Tip

本周学习有关Linux服务器下,对进程占CPU持续升高进行快速定位原因的方法。

CPU负载过高异常定位排查

Share

在自动内存管理年代,是否还有必要了解GC?

经过半个世纪的发展,内存动态分配与内存回收技术已经相当成熟。那我们为何还要了解GC和内存分配呢?其实这是why和if not的关系,我们先说if not,有了自动内存管理,真的就不会出现内存问题吗?当然是否定的。就连jvm自己都没有这么自信,也会抛出OOM的异常。所以如果我们不了解GC及内存分配机制,代码不规范,当频繁的垃圾收集成为系统到达更高并发量的瓶颈时,甚至导致程序崩溃时,解决他花费的代价远比学习了解高得多。这里有写的一篇内存溢出[OOM]异常快速定位排查的文章分享给大家,不算深入,大可以解决一些问题。

内存溢出[OOM]异常快速定位排查


七十载砥砺前进,七十载芳华正劲。以时光为轴衡量,旧貌喜换新颜;以岁月为笔作序,山河更添华章。在这个举国欢腾的日子里——衷心祝愿祖国日益繁荣昌盛!

----------本文结束感谢您的阅读----------
xiaolong wechat
一只程序猿对世界的不完全理解