Android Architecture Component - App Startup

App Startup 是 Jetpack 提供的一个用于 App 启动时进行 component 初始化的机制,那么先来看看我们之前一般都是如何实现初始化的。

Continue Reading »

博耶·摩尔多数投票算法

O(n) 时间、O(1) 空间,查找输入数据的众数。

LeetCode #169. Majority Element

LeetCode #229. Majority Element II

Continue Reading »

LeetCode #837 New 21 Game

LeetCode #837 New 21 Game

简单来说,就是在 [1, W] 的范围内抽牌,抽到的牌即为点数,记到自己的分数里,分数大于等于 K 时,抽牌结束。 求当抽牌结束时,分数小于等于 N 的概率。

Continue Reading »

如何从 Stream 的角度思考 RxJava

这篇文章是对 RxJava 工程使用方面的一些总结和思考,不会涉及具体操作符解释、实现细节,更多是从 idea 出发来思考 Stream。当然因为思想是相同的,对于 RxPython 及其它语言的使用,几乎没有差别。

Continue Reading »

对于程序员和开发人员来说,
如果完成某项任务所需要付出的努力对他们是个挑战,
却又恰好还在力所能及的范围内,
他们就会觉得很有乐趣。
因此,趣味性是一个峰值效率的标志。
……
乐趣是一个符号,意味着效能、效率和高产。

——「UNIX 编程艺术」

Python 中的 magic int

TL;DR: [-5, 257) 范围内的整数,CPython 做了优化,内存中只会有一份,使用单例模式

Continue Reading »

Android MediaPlayer 调用 seekTo 视频进度错误

Android 中遇到的问题,使用 MediaPlayer 播放视频时,调用 seekTo(int) 方法,但是视频实际跳转的进度和传入的时间点并不一致。

搜索相关资料后,发现是视频「关键帧」方面的原因。

Continue Reading »

Unix 中 /bin、 /sbin、 /usr/bin、 /usr/sbin 的渊源

在包括 Linux、Mac、FreeBSD 等在内的绝大多数类 Unix 系统中,根目录下会存在 /bin /sbin /usr/bin /usr/sbin 等等目录,然而却没有文档能够明确地说明这些目录的相应规则。

其实,这还得从 Ken Thompson 和 Dennis Ritchie 发明 Unix 的时候说起……

Continue Reading »