0%

题目

爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:

爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。

当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?

阅读全文 »

最近,公司产品中经常发现有用户报告各种列表突然不见的问题,后来发现是子线程报 IllegalStateException,其中的 message 就是我们的标题。

这个问题还得从 JDK 1.7 开始说起。

阅读全文 »

上文说到,相等间距的 GridLayoutManager 的 ItemDecoration 可以使用 公式法 来对所有四个方向的 offset 进行计算,由此可以大大简化 itemOffset 的计算,同时也天然的支持 RTL。

但是,很多时候我们的 item 由于布局的原因,会出现一个 item 占据多个 span 的情况;

上文最后给出的代码并没能处理这种情况,本文在这里就这个问题再进行进一步的讨论。

阅读全文 »

在 Android 开发中,给网格状布局的元素之间添加空隙,并让他们居中对齐算是 UI 层面的一个常见需求;

很多时候我们都是通过在 itemView 中添加适当的 margin 来实现的,但是这个实现方式在遇到头尾部空隙和中间不一致时,就需要进行特殊处理,而且从权责上来看,实际上也不应该由 itemView 负责这个间隙的调整工作。

当然,Google 提供了一个 ItemDecoration 类专门来做这个事情,但是网上对于这个类的解析文章水平参差不齐,例如本文的参考文章,解析写的很好,但是提供出来的例子性能很糟糕,这里采用这篇文章进行参考,同时给出一个性能较好的例子供大家使用。

在这里也感谢此文的作者,他写的这篇文章很好的解释了 ItemDecoration 的原理,也使我增加了知识从而成文。

阅读全文 »

之前由于给 B 站交了身份证,因此就想稍微利用一下,直播写一下代码;

不过 macOS 没有 B 站的一键开播客户端,这里来介绍一下我的折腾成果。

阅读全文 »

最近公司要求实现一个轨迹回放功能,想着 JS 都有 demo 的功能,Android 实现起来不还是小菜一碟?

结果显然是我太拿衣服了

阅读全文 »

之前看各大面经的时候搜索到了这个问题,切实感觉到如果刨根问底的问,自己还真不能抵挡住这种攻势,现在闲暇时间又心血来潮地想起来这个问题,就打算好好弄懂弄透,也希望能在将来面试的时候做好准备。

本文基于这个 StackOverflow 回答进一步推导,并给出详细解答步骤

阅读全文 »