Fork me on GitHub

ARTS(14)

ARTS 第十四周(终篇)

ARTS 活动持续了 100 天,到本周正式宣告结束!撒花!!!

虽然ARTS 结束了,但是还要生生不息地折腾啊~~

每周完成一个ARTS(也就是 Algorithm、Review、Tip、Share 简称ARTS):

  1. 每周至少做一个 leetcode 的算法题
  2. 阅读并点评至少一篇英文技术文章
  3. 学习至少一个技术技巧
  4. 分享一篇有观点和思考的技术文章。

Algorithm

力扣 142. 环形链表 II

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

说明:不允许修改给定的链表。空间复杂度 O(1)

示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:tail connects to node index 1
解释:链表中有一个环,其尾部连接到第二个节点。

思路:直接看Linked List Cycle II,浅显易懂。

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
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/

public class Solution {
public ListNode detectCycle(ListNode head) {
ListNode fast, slow;
fast = slow = head;
do {
if (fast != null) fast = fast.next;
if (fast != null) fast = fast.next;
if (slow != null) slow = slow.next;
} while (fast != slow);
fast = head;
while(fast!=slow && fast!=null && slow != null){
fast = fast.next;
slow = slow.next;
}
return slow;
}
}

Review

7 月 3 号的事件,BBC 新闻:Baidu chief doused with water at AI event

解读:

  1. 宏颜获水,AI 的发展也会被”泼冷水”。
  2. 百度 AI 可以支持中英文,而且无需唤醒语。竞品亚马逊的 Alexa 或者 Google 的家用设备目前都还需要唤醒语。
  3. 百度语音助手至今已经安装在了 4 亿多台设备上,月处理请求高达 36 亿条。
  4. 百度与国内银行合作,将推出针对个人的理财智能助手。
  5. 不久之后,百度会在长沙亮相一个 100 辆车组成的无人驾驶车队。
  6. 大会全场,一个名为”茶博士”的长臂机器人做了倒茶的表演。

Tip

记录个网站吧:《动手学深度学习》

朋友强推的,虽然我短时间内不会学这个,但想想还是 mark 一下。

还有:《Designing Data-Intensive Application》DDIA中文翻译

Share

分享一个 lambda 表达式的骚操作:链接:如何使用java8 stream 将两个List 集合中的相同下标的值相加生成一个新的List

1
2
3
4
5
6
7
8
9
List<Integer> list1 =Arrays.asList(1,2,3,4,5);
List<Integer> list2 =Arrays.asList(1,2,3,4,5);

List<Integer> result = IntStream.range(0, list1.size())
.map(i -> list1.get(i) + list2.get(i))
.boxed()
.collect(Collectors.toList());

//生成 result :{2,4,6,8,10}

使用java8的lambda将list转为map(转)

1
2
3
4
public Map<Long, String> getIdNameMap(List<Account> accounts) {
return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));
}
// 其实有缺陷(Duplicate key 问题),参考上面的链接原文
-------------The End-------------