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

题图:macOS Big Sur Coastline

Contents

Algorithm

231. Power of Two

题目:231. Power of Two

难度:Easy

题意:Given an integer n, return true if it is a power of two. Otherwise, return false.

An integer n is a power of two, if there exists an integer x such that n == 2^x.

示例 1:

Input: n = 1
Output: true
Explanation: 2^0 = 1

示例 2:

Input: n = 16
Output: true
Explanation: 2^4 = 16

示例 3:

Input: n = 3
Output: false

示例 4:

Input: n = 3
Output: false

示例 5:

Input: n = 5
Output: false

Constraints:

-2^31 <= n <= 2^31 - 1

解法 1:

这道题其实非常简单,因为 Python 中可以直接调用 pow() 这个函数来计算指数/幂函数的,但我们也可以思考多一些方法。这里我用的第一种方法就是连除,就是把这个数字一直除以 2,看最后是否会剩下 1。

代码:

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        if n < 1:
            return False
        
        while n % 2 == 0:
            n /= 2
        return n == 1

解法 2:

这道题我们也可以通过逻辑运算的方式来解决。因为想到用二进制表示的话,所有 2 的幂都可以表示为 1000 的形式(这里用 n 来表示),而 n - 1 则会是 0111 的形式,如果把这两者相与,最后的结果一定会是 0

代码:

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
         return n > 0 and (n & (n - 1)) == 0

Review

The Secret to Hyper Productivity in 3 to 4 Hours a Day

这周的文章来自于 Medium,《The Secret to Hyper Productivity in 3 to 4 Hours a Day》。文章对 Cal Newport 的《Deep Work》这本书进行了简要的介绍,并结合 Cal Newport 的生平论证高效和深度的工作的有效性。

Tips

ML Visuals by dair.ai

ML Visuals 是一个由 dair.ai 提供的机器学习画图模板项目,项目开源在 GitHub 上,现在已经有 3800 个 star 了。

ML Visuals 提供了一个机器学习相关、可自由使用的、专业而优雅的 PPT 模板,其中包含了基础组件、架构、ML 概念、抽象背景、渐变背景、ML 与健康、杂项、ML 系统设计与基础几大块。

包括矩阵与向量、基本操作或者转换、神经元等等

向量

常用操作

矩阵与多维数组

常用架构一

常用架构二

常用架构三

常用架构四

Transformer

欠拟合与过拟合

Dropout 与归一化

抽象背景

渐变背景

疼痛等级

U-Net 结构

池化操作

ML Visuals 开源在 GitHub 上,对应的 PPT 在 Google Slide 开源,由于网络环境的限制,后台回复「MLVisuals」获取 PPT 下载链接。

Share

我自己的训练营作业 -《把时间当作朋友》

新年开始,我一直在跟着明白老师的训练营读李笑来的《把时间当作朋友》这本书,回答了很多作业中的问题,但都是私下自己写然后放到知识星球里。明白老师有一次强调到,厉害的人都是把一份时间的成果复用很多次,从而创造出多份的价值。我就想到,我可以把我每天的作业的回答发布到公众号上来,算是对自己日更的一个挑战。

今天把之前的回答都搬上来了,之后会把当天的作业同步发布在公众号里,大家可以在我的这个文章合集中查看。作业会每日更新。

WeChat QRCode