ARTS - 2020.06.22 ~ 2020.06.27

ARTS打卡 - 4

1. Algorithm

11. Container With Most Water

这道题是求一个坐标点的集合,然后求集合内两个坐标点代表的柱状图之间围起来的最大面积。这道题总的来说感觉比较简单,有点类似之前做过的回文字串的问题,不过这道题使用双指针会比较简单的解决:

  • 使用一头一尾两个指针,首先计算两个坐标点围起来的面积: $S(i,j)=min(height[i], height[j]) * (j-i)$

  • 然后考虑移动指针的方式,可以想到,如果移动两个坐标之间较小的,那么得到的新的最小值可能会比之前更大, 相应的面积也会更大。而假设移动较大的值,得到的最小值只可能小于等于之前的最小值,因此得到的面积会变得更小,所以这里指针移动的时候考虑移动较小的值对应的指针即可。

  • 按照第二步的指针移动方式移动指针,直到 i > j 时,便可以得到最大的面积。

2. Review

Alter type with typealias

一篇关于使用 typealias 的好处以及使用方法的文章:

  • typealias 允许在不引入新类型的情况下为类或者函数类型提供别名
  • 可以缩短一些较长的类名
  • 允许缩短长泛型的名称
  • 可以在 import 的时候指定alias,在使用不同包的同类名时会显得很有用
  • 但是使用 typealias 会隐藏参数类型,使可读性变差

3. Tip

这周的tip主要介绍下两个工具吧:

  • 在windows平台下配置类似item2 的终端,如下:

image-20200627200241490.png

配置方法参考:

https://www.jianshu.com/p/4b2b7074d9e2

https://github.com/spencerwooo/dotfiles

4. Share