996 的工作时间搞的身心俱疲,周内根本没时间打卡,只能靠周日了。本周打卡内容主要是二叉树、RxJava等相关内容。

Algorithm

这周主要作了N叉树相关的题目,判断N叉树的最大深度。

559. Maximum Depth of N-ary Tree

Given a n-ary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Example:

For example, given a 3-ary tree:

img

We should return its max depth, which is 3.

public int maxDepth(Node root) {
if (root == null) {
return 0;
}
if (root.children == null || root.children.size() == 0) {
return 1;
}

int maxDepth = -1;
for (Node node: root.children) {
maxDepth = Math.max(maxDepth, maxDepth(node));
}
return maxDepth + 1;
}

运行结果

result1

Review

本周阅读学习 RxJava 系列的中的两篇文章:

Subjects 是什么?Subjects 是继承自 Observable 并且实现 Observer 接口。

Subjects的特点:

  • 可以同时扮演观察者和被观察者的角色;
  • 主题可以向多个子观察者发送事件。多播使得一次性运行昂贵的操作并将结果发送给多个订户成为可能,这样可以防止对多个订阅服务器执行重复操作;
  • 热门 Observable;

常用不同类型的 Subjects

  • PublishSubject:在注册的时候,发送所有事件,这是最基本的 Subjects。
  • BehaviorSubject:BehaviorSubject在订阅时发出最新的项以及之后的所有项;
  • ReplaySubject:在订阅者订阅之前会发送所有事件;
  • AsyncSubject:仅仅发送一个事件,而且仅在 Obserable 完成之后(onComplete执行之后)才会发送;
  • UnicastSubject:只有有一个观察者,会在观察者订阅的时候发送所有数据;

Different types of Subjects

Tips

  1. git log —since=2019-3-25 —until 2019-3-26(左闭右开)命令可以过滤某一段时间内的 log;
  2. Editatext的saveEnable属性,解决setText不起作用的问题 ;

Share

android-Ultra-Pull-To-Refresh 源码解析