观察者模式是用于解耦的,把不同功能的类,而又对某一共同事件或者消息感兴趣解耦开来,使双方互不知道对方。常规的实现是通过接口的方式来把需要关注的消息封装起来,双方各自实现接口即可。
Upgrade to RxJava 3
数学相关题目
数学是自然科学之母,数学也是算法之母,有一些数学相关的题目需要总结一下。当然暴力法也都是可以解决的,但是通过数学一些公式的引入会提升时间效率。
Beyond RxJava
RxJava是一种编程范式,它并不是一个库,而是一种编程思想,一种解决问题的新思路,一种架构思想。因此,基于RxJava还有大量的其他的库,可以一起更容易让用RxJava构建应用程序。
其他书籍和文档也有提及,这些东西称为RxJava Extras。
Introduction to RxJava
RxJava是一个异步数据流式的开源库,已流行于Android开发行业中多年,现在已经变成了Android开发的一个标配,几乎所有,是的几乎所有的项目都会使用它(即使大部分人并没有真的在用它)。也几乎每个开发人员的简历中都会写着熟悉RxJava,甚至是精通RxJava,可见它的流行程度,今天就来学习一下RxJava的基本使用。
搞懂动态规划之状态压缩
前缀和与差分数组简介
Understanding Dijkstra Algorithm
最短路径问题,是图论中经常遇到的问题,对于非加权图,用广度优先搜索(BFS)就可以找到两个顶点之间的最短路径(最少边数),但对于加权图,就需要用到著名的犾克斯特拉算法(Dijkstra Algorithm)。
图论基础知识
图(Graph))是一个由节点和边组成的略复杂的二维数据结构,通常用于表示物体之间的关系。
理解并运用并查集
并查集(Disjoint-set Data Structure)是一种树形的结构,用于处理不相交的集合的高效的查询(find)和合并(union)问题。主要有两种操作一是查询(find),也就是查询某个元素是否属于某个集合;二是合并(union),也即把某个加入到某个集合中,这里的集合都是无交集的。通过路径压缩,并查集的查询和合并都可以达到常数级别O(1)。