ARTS第二周

ARTS是什么?

Algorithm:每周至少做一个leetcode的算法题;
Review:阅读并点评至少一篇英文技术文章;
Tip/Techni:学习至少一个技术技巧;
Share:分享一篇有观点和思考的技术文章。

Algorithm

题目:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 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
public class Solution002 {
int val;
Solution002 next;
Solution002(int x) { val = x; }
}
class Solution {
public Solution002 addTwoNumbers(Solution002 l1, Solution002 l2) {
if(l1 == null){return l2;}
if(l2 == null){return l1;}
int v = l1.val + l2.val;
if ( v > 9){
l1.val = v - 10;
l1.next = addOne(l1.next);
} else {
l1.val = v;
}
l1.next = addTwoNumbers(l1.next,l2.next);
return l1;
}
private Solution002 addOne(Solution002 node) {
if (node == null)
return new Solution002(1);

if (node.val == 9) {
node.val = 0;
node.next = addOne(node.next);
} else {
++node.val;
}
return node;
}
}

Review

分享一下自己整理的HiveDDL语言DML语言手册(来自Hive官网

Tips

关于mysql优化的一篇文章。

Share

分享一篇自己整理的关于Hive的常用SQL