ARTS-02 20200622~20200628

Alg

一个数论题

我的做法是 预处理一下,获得一个包含了最多 n 个天数的有序数列,预处理 O(n^2) ; 然后对预处理得到的序列,每个天数依次校验天数对应的情况是否能满足需求, 也是 O(n^2) ,所以时间复杂度是 O(n^2) . 空间复杂度是 O(n)

但是 超时啦~

Rev

kotlin's hidden costs

讲到了一些 kotlin 相比 java 的性能损失,写 kotlin 的时候需要注意的一些点。我看了以后列举一下我觉得有道理的 :

  • kotlin 的 * 运算符. 例如 fun f(vararg a : Int){} f(*arr) 因为这个的 JVM 字节码会先 system.arrayCopy 一个新的 array 再传入 f, 需要视实际情况使用。
  • kotlin 的 range 运算符相关的问题, 也就是 0 .. 10 这个语法, 这里不要使用 (0..10).foreach {} 的写法, 因为这种写法的字节码是使用 Iterator 遍历的。而 for(i in 0..10) 就是正常的 判断-跳转

Tip

AndroidStudio 或者别的 IDEA 族的 IDE, 都可以使用 IdeaVim 插件来给 Editor 增加一个 vim 模式, 这就使得查看代码变得很舒服(因为可以使用 Ctrl-B Ctrl-W HJKL 而不需要必须使用 上下左右 来操作光标了(而实际看代码的时候手移动到 上下左右区域是很麻烦),再配合 IDEA 默认的一些快捷键, 例如 查看父类(Cmd-U)/查看实现(Shift-Cmd-B)/ 查看引用定义(Cmd-B)... 用熟了以后可以使得基于 IDEA 的代码查看变得十分轻松惬意。

Share

偷个懒,直接放链接了, Android 端接入代码检测
代码检测在我看来真的很有必要, 它不是一个限制,是一个辅助工具,会告诉你 ”这个地方你做的可能还不太对,是不是考虑考虑再改一下?“ , 这在我看来很有帮助。

猜你喜欢

转载自www.cnblogs.com/wkmcyz/p/13199634.html
今日推荐