iris后端开发笔记整理
Algorithm Template
Codeforces - 1635D Infinite Set(dp)
Fragment管理指北
随着ViewModel的大量使用,曾经并不是那么好用的Fragment走上了主流的舞台。相较于简明易懂的Activity管理,Fragment的管理更为复杂。在上周的需求中,我和同事共同完成了一个旧页面的彻底改造。在改造的过程中,我们发现了一个Fragment偶尔重复添加的bug。由于报错信息有限,同时对于Fragment的理解不够,我直接就是一波反向定位:new_moon_with_face:, 认为主要的问题是Activity被kill后恢复时,未判断是否是第一次添加fragment导致了重复添加。最后发现并不是这个问题导致的重复添加:disappointed_relieved:,但是探索的过程非常有趣,也增加了我对Fragment的理解。所以写下此文与大家分享。
View的动态添加-Android
Android 11 (Image credit: Shutterstock / TechRadar)
在安卓小列表展示的情况下,我们应该使用什么样的UI结构?使用写死的xml?很容易缺乏灵活性,如果列表变动就会需要更改多个模块。使用recycleview?虽然拥有灵活性但是太重,有杀鸡用牛刀之感。在实习的过程中我就碰到了这样的问题,通过同事的指点学习了为视图动态添加view的方式。在学习的过程中,我发现相关的文章相对较少,而且很多文章是在kotlin/java文件中添加布局,而不是xml文件,灵活性相对较差。所以在此与大家分享这个问题上我的实践方式。
Head first Red Black Tree
Red-Black Tree is a special kind of binary search tree. Each of its node is either black or red. Besides, the Red-Black tree has the following features:
- Each of its nodes is either black or red.
- The root node is black.
- Every leaf node is black. (In the Red-Black tree, the leaf node is a NIL node).
- If a node is red, its child must be black.
- From any node to its descendant leaf node must have the same number of black nodes.
The reason why we use the Red-Black tree that it’s height is always log(n), which guarantees the time complexity of its operation. The proof of Red-Black Tree’s time complexity can be found here.