五一放假没有出门,看着各种人挤人,车挤车,我心甚慰🤣🤣。这周的打卡内容主要是一道二叉树遍历题目,数据库方面是一道NOT IN
关键字的题目,以及 REVIEW 一篇 RxJava 的文章。
Algorithm
题目描述
Given a binary tree, return the inorder traversal of its nodes’ values.
Example:
> Input: [1,null,2,3]
> 1
> \
> 2
> /
> 3
>
> Output: [1,3,2]
>
二叉树的遍历问题,最经典的方法就是递归了。
Java
public List<Integer> inorderTraversal(TreeNode root) { |
Python
def inorderTraversal(self, root: TreeNode) -> List[int]: |
Runtime | Memory | Language |
---|---|---|
36 ms | 13.1 MB | python |
1 ms | 36.1 MB | java |
Database
596. Classes More Than 5 Students
There is a table
courses
with columns: student and classPlease list out all classes which have more than or equal to 5 students.
Note:
The students should not be counted duplicate in each course.
SELECT |
主要用到了NOT IN
关键字。
Review
本周接着看了RxJava系列的文章中的第二篇。主要讲述了 Observable
传递过程中的相关操作:
- Buffer:Observable.buffer(int num)方法,会周期性的从 Obserable 中取出 num 个数的数据或者事件,而不是一个接一个的传递;
- Map:该方法是对每一个传递的数据或者事件进行处理,处理完毕之后再进行向下传递;
- FlatMap:该方法返回的还是一个 Observable 对象,是对原来传递的数据进行处理,返回一个对应的 Observable 对象(主要用于对元素顺序不关注的情况);
- SwitchMap: 返回原始 Observable 对象传递数据中最后的一项 ;
- ConcatMap:和 flatMap 有点类似;
- GroupBy:将原始 Observable 对象传递的数据按某一 key 进行分类,将分类之后的数据进行传递(apply方法返回为
true
的时候该数据或事件才会进行传递); - Scan:对传递的参数进行处理,但是该参数不仅仅指当前传递的,还包括以前传递的。
Exploring RxJava in Android — Operators for Transforming Observables
Tips
-
python中给list一次添加多个元素时使用方法
extend()
list1 = [1,2,3]
list2 = [2,3,4]
list1.extend(list2)
# list1 is [1,2,3,2,3,4] -
python中读取一个文件的所有内容除了
file.readlines()
方法,还可以使用file.read()
方法; -
NinePatchDrawable 在给 background 设置 bounds 之后,下次 draw 时 bottom 会变小,导致看起来会闪一下,目前想到的解决办法就是在原来背景的基础上通过设置着色达到改变背景的目的。
Share
python 内容较多的文件内容读取方式比较:https://www.cnblogs.com/6tian/p/5886284.html