前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一直打卡一直爽系列--欧阳同学的ARTS 第 40 周

一直打卡一直爽系列--欧阳同学的ARTS 第 40 周

作者头像
程序员小跃
发布2020-01-13 09:59:35
2700
发布2020-01-13 09:59:35
举报
文章被收录于专栏:程序员小跃

这周重新开始连载 ARTS 打卡系列,之后会将没有发在公众号上的打卡文章一并补发上来,谢谢大家。

ARTS 第 40 周

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


Contents

•Algorithm: 326. Power of Three•Review: 3 facts about time series forecasting that surprise experienced machine learning practitioners•Tip: VS Code 与其他 Mac 应用共享搜索记录•Share: VS Code 中的搜索和替换


Algorithm

326. Power of Three

题目:326. Power of Three[1]

难度:Easy

题意:Given an integer, write a function to determine if it is a power of three.

示例 1:

代码语言:javascript
复制
Input: 27
Output: true

示例 2:

代码语言:javascript
复制
Input: 0
Output: false

示例 3:

代码语言:javascript
复制
Input: 9
Output: true

示例 4:

代码语言:javascript
复制
Input: 45
Output: false

Follow up: Could you do it without using any loop / recursion?

解法:

首先我们来使用一个最直接的方法,将 n 不断除以 3,直到最后的结果不大于 3,如果这个过程中出现余数不为 0 的情况,就说明这个数不是 3 的幂数,最后的结果如果不是 1 或者 3,那么也说明这个数不是 3 的幂数。

代码:

代码语言:javascript
复制
class Solution:
    def isPowerOfThree(self, n: int) -> bool:
        while n > 3:
            if n % 3 == 0:
                n /= 3
            else:
                return False

        return n == 3 or n == 1

时间复杂度 O(log N)。

我们再来看一个题解中给出的答案:题解使用了 Java ,由于 Java 中,在 int 能表示的最大整数范围内,3 的最大的幂数为 1162261467,那么只要 n 能够整除 1162261467,就说明 n 是 3 的幂。:

代码语言:javascript
复制
public class Solution {
    public boolean isPowerOfThree(int n) {
        return n > 0 && 1162261467 % n == 0;
    }
}

在 Python 中,将这个 1162261467 换成 3^39 即可。

代码语言:javascript
复制
class Solution:
    def isPowerOfThree(self, n: int) -> bool:
        return (n > 0) and (3**39 % n ==0)

时间复杂度为 O(1)。


Review

3 facts about time series forecasting that surprise experienced machine learning practitioners.

本周阅读的文章来自于 Medium 上 Towards Data Science 专栏,《3 facts about time series forecasting that surprise experienced machine learning practitioners[2]》。

这篇文章非常容易阅读,基本上没有什么生词难句,但文章内容却极具启发意义。作者在文章中提出了三个会使机器学习大师惊讶的时间序列预测问题:

1.每次你要生成一个新的预测值的时候,你都要重新训练你的模型2.有时候你需要取消训练集与测试集的划分3.预测的不确定性和预测本身同样重要,甚至更重要

作者在文章中对这三点都进行了详细的描述和论证,在评论区也对粉丝的问题作了详尽的解答与扩展。说实话这三点虽然在研究过程中我也会有明显的感觉,但这篇文章还是提纲挈领,点出了三个重要的事实。做时间序列的朋友强烈建议一读。


Tips

VS Code 与其他 Mac 应用共享搜索记录

打开 VS Code 的设置中的这两项:

editor.find.globalFindClipboard:控制“查找”小组件是否读取或修改 macOS 的共享查找剪贴板•search.globalFindClipboard:控制“搜索”视图是否读取或修改 macOS 的共享查找剪贴板

就像功能描述中说的那样,打开这个功能之后,你在 VS Code 中的搜索关键词和搜索记录,就会被共享给系统剪贴板,之后打开一些支持这个功能的其他应用,按下 Cmd + F 键,同样的搜索关键词会被自动填充到搜索框中。目前测试 Mac 自带的办公三件套 Pages、Keynote、Numbers 以及 Safari 和 Chrome 是支持的,其他应用欢迎补充。


Share

VS Code 中的搜索和替换

在 VS Code 中,按下 Cmd + F 可以执行搜索,这个时候会调出搜索框,如下图所示:

这时候你开始打字的话,VS Code 就会开始搜索搜索框中指定的内容了,VS Code 会默认将你光标所在之处的单词作为关键词进行搜索。按下回车键可以在所有的搜索结果之间来回跳转。接下来只要点击编辑器中对应的单词就可以进行修改了。

但有人还是会觉得,搜索完之后还是要使用鼠标点击一下搜索结果,才能进行修改,太麻烦了。那么这个时候你就需要 Cmd + G 出场了。其实 Cmd + GCmd + F 功能一样,只是在你按下 Cmd + G 之后,你会发现你的光标停留在编辑器中,通过连续按下 Cmd + G,你就可以直接打字对代码进行修改了。

在搜索框中,你还会看到几个特殊的配置按钮,从左至右它们分别是:

1.大小写敏感:VS Code 的搜索默认对大小写不敏感,点击这个按钮可以设置对大小写敏感;2.全单词匹配:有时候我们搜索的单词如果是别的单词的一部分,VS Code 是默认展示这些单词的搜索结果的,点击这个按钮可以关闭全单词匹配;3.正则表达式:使用正则表达式来搜索结果,VS Code 使用的是 JS 的正则引擎。

最后,在上下箭头的后面,还有一个由三条横线组成的按钮,这个按钮的意思是:选中代码中的一段,然后按 Cmd + F 调出搜索框,点击这个按钮,就只会在你选定的这段代码中进行搜索。

References

[1] 326. Power of Three: https://leetcode.com/problems/power-of-three/ [2] 3 facts about time series forecasting that surprise experienced machine learning practitioners: https://towardsdatascience.com/3-facts-about-time-series-forecasting-that-surprise-experienced-machine-learning-practitioners-69c18ee89387

THE END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑吧攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ARTS 第 40 周
  • Contents
  • Algorithm
    • 326. Power of Three
    • Review
      • 3 facts about time series forecasting that surprise experienced machine learning practitioners.
      • Tips
        • VS Code 与其他 Mac 应用共享搜索记录
        • Share
          • VS Code 中的搜索和替换
            • References
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档