ARTS打卡 - 4
1. Algorithm
这道题是求一个坐标点的集合,然后求集合内两个坐标点代表的柱状图之间围起来的最大面积。这道题总的来说感觉比较简单,有点类似之前做过的回文字串的问题,不过这道题使用双指针会比较简单的解决:
使用一头一尾两个指针,首先计算两个坐标点围起来的面积: $S(i,j)=min(height[i], height[j]) * (j-i)$
然后考虑移动指针的方式,可以想到,如果移动两个坐标之间较小的,那么得到的新的最小值可能会比之前更大, 相应的面积也会更大。而假设移动较大的值,得到的最小值只可能小于等于之前的最小值,因此得到的面积会变得更小,所以这里指针移动的时候考虑移动较小的值对应的指针即可。
按照第二步的指针移动方式移动指针,直到 i > j 时,便可以得到最大的面积。
2. Review
一篇关于使用 typealias
的好处以及使用方法的文章:
- typealias 允许在不引入新类型的情况下为类或者函数类型提供别名
- 可以缩短一些较长的类名
- 允许缩短长泛型的名称
- 可以在
import
的时候指定alias,在使用不同包的同类名时会显得很有用 - 但是使用
typealias
会隐藏参数类型,使可读性变差
3. Tip
这周的tip主要介绍下两个工具吧:
- windows下类似homebrew的包管理器
scoop
的使用:
- 在windows平台下配置类似item2 的终端,如下:
配置方法参考:
https://www.jianshu.com/p/4b2b7074d9e2
https://github.com/spencerwooo/dotfiles
4. Share
Android VSYNC与图形系统中的撕裂、双缓冲、三缓冲浅析
- 这篇文章对于UI渲染的单缓冲、双缓冲、以及由于双缓冲的机制带来的问题而演化的三缓冲机制做了详细的解释。