ARTS 2.0 第 1 周

每周完成一个 ARTS:
Algorithm: 每周至少做一个 LeetCode 的算法题
Review: 阅读并点评至少一篇英文技术文章
Tips: 学习至少一个技术技巧
Share: 分享一篇有观点和思考的技术文章

Contents

Algorithm

263. Ugly Number

题目:263. Ugly Number

难度:Easy

题意:Write a program to check whether a given number is an ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.

示例一:

Input: 6
Output: true
Explanation: 6 = 2 × 3

示例二:

Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2

示例三:

Input: 14
Output: false
Explanation: 14 is not ugly since it includes another prime factor 7.

解法:

这道题非常简单,只需要做几个简单的判断即可。

代码:

class Solution:
    def isUgly(self, num: int) -> bool:
        if num == 0: return False

        while num % 2 == 0: num /= 2
        while num % 3 == 0: num /= 3
        while num % 5 == 0: num /= 5

        return num == 1

时间复杂度 $O(n)$,空间复杂度 $O(1)$。

Review

Breaking Out of the “Tutorial Trap”

本周阅读的文章来自 Medium 的「BetterProgramming」专栏,《Breaking Out of the “Tutorial Trap”》。文章讲述了自学 Tutorial 时的一些注意事项,总结下来有以下四点:

  1. 首先,你需要修改教程中的例子,并且强迫自己独立的去应用教程中的概念;
  2. 第二,不要复制粘贴,动手敲代码才是理解技术的最佳方式;
  3. 其次,你要仅凭记忆重现教程中的例子,以确保你已经完全理解;
  4. 最后,善用搜索引擎,遇到问题的时候,要有针对性地提问,而不要只是说「It doesn’t work.」

Tips

使用 Working Copy 与 MWeb 撰写博客文章

我开始使用 iPad 撰写我的博客文章。Markdown 编辑器是「MWeb」,使用「Working Copy」实现 GitHub 同步,最后通过「mdnice」实现公众号文章的排版。

整体的思路比较简单,首先使用「Working Copy」拉取 GitHub 仓库,在 _posts 文件夹下面新建对应的 Markdown 格式的博客文件,再使用「Working Copy」的分享功能,选择「在“Mweb”中打开」。接着将「MWeb」中存储好的文章模板复制粘贴过来,就可以开始写文章了,编辑好的文章会自动同步到「Working Copy」之中。最后只要稍加修改即可推送到远程仓库。

从 Working Copy 到 MWeb

下面说说我为什么选择这两款工具吧。

首先,「Working Copy」是一款 iPadOS/iOS 上的 Git 客户端,提供全功能的 Git 服务,可以实现在 Github 等 Git 服务上对 repository 的 clone、push、pull 等功能。这就为在 iPad 上撰写 host 在 GitHub Pages 上的博客提供了可能。其次,「Working Copy」还可以与「Drafts」、「MWeb」、「iA Writer」等 Markdown 编辑器无缝互动。最后,「Working Copy」完整地支持了 iPadOS 的各种特性,支持拖拽以及与「文件」应用无缝衔接,这也意味着你可以使用各种编辑器来编辑「Working Copy」中的文件。

MWeb」则是国人开发的一款 Markdown 编辑器,也是目前最符合我基本需求的 Markdown 编辑器:$\LaTeX$ 支持、meta info 支持、实时预览、多平台同步、自定义图床。其他编辑器,「Ulysses」、「Drafts」和「熊掌记」这类 Markdown 编辑器没有对 $\LaTeX$ 和自定义图床的支持,纯代码编辑器如「Kodex」又没有实时预览的功能。虽然我对「MWeb」的颜值并不十分满意,但其全面的功能还是让我在它和其他编辑器之间做出了选择。

Share

从《明亮晃荡志》想到的

这周读了我非常喜欢的播客「ByteCoffee」的主播「Milkshake羊」写的小册子《明亮晃荡志》,记录了她在斯坦福交流期间的生活、工作和学习。文字清晰流畅,既有工科生的严谨逻辑,又有作为女生的温柔明亮,与她的播客风格一脉相承。我在阅读的时候还发了一条微博:

@MilkShake羊 《明亮晃荡志》真诚又真挚,同在海外求学的我有不少感同身受之处。认真记录生活还是挺重要的,只有认真地生活,才可以认真地记录。

最近也在群友的公众号「功不唐捐skr」中看到了一句蛮有道理的话,「未记录就未发生」。

这周的打卡是我和 @天涯 约定重新开始打卡的第一周,之前由于一些原因个人懒惰停更了一段时间,这次再重新捡起,感觉阻力不小。之前在池大星球看过一句:

好习惯一旦中断,就很可能会中断很久,因为人心理上会觉得,已经中断了,再中断一会也无妨。

一些事情做得时间长了就会有动量,而一旦失去这个动量,想要重新捡起来,就需要花费更多的时间。健身也是、学习也是。

PS:对《明亮晃荡志》感兴趣的朋友可以在「爱发电」的这个页面去发电支持,或者在 iBook 和 Google Play 图书中搜索《明亮晃荡志》购买阅读。