Algorithm做算法题,Review点评英文文章,Tip总结技术技巧,Share做技术分享。每周打卡一次,这就是ARTS打卡。
1. 做算法题
题目描述:
LeetCode55题. 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。
示例 1:
输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。
示例 2:
输入: [3,2,1,0,4]
输出: false
解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。
解题思路: 判断是否能从第0位置到最后位置,可设置一个最大可达到距离max_i,初始为0,从第0位置开始遍历数组,如果某个元素可达而且从这个元素可达距离更大就更新最大可达距离max_i,最后比较max_i和数组长度,判断能否到达最后一个位置。
解题代码:
class Solution:
def canJump(self, nums: List[int]) -> bool:
max_i = 0
for i, jump in enumerate(nums):
if max_i >= i and i + jump > max_i:
max_i = i + jump
return max_i >= i
2. 点评英文文章
文章A Beginner’s Guide to Spending Cryptocurrency in Real Life介绍了现实生活中如何使用加密货币生存,文中给出了用加密货币解决衣食住行等问题的具体办法。用解决身边具体问题的方式,讲解了加密货币的使用,提前看到了未来可能的样子。
3. 技术技巧
《Python量化投资》中介绍大量量化投资的概念,并用Python代码展示像夏普比率、最大回撤的计算过程,比单纯看数学公式理解原理更有意思。
4. 技术分享
获取知识分两个方向,一个是深度,一个是广度,获取深度需要大量时间的积累,二广度则需要快速地打开一个大门,走马观花地看一看。刷书就是一种获取广博知识的方法,在得到上可以免费试读每本书的10%。翻一本书的序言、前言能大致知道书是说什么的,而且能看出作者的功力如何,如果能吸引你进入一个领域就继续翻到倒数第二章,看看作者是否继续保持开篇的激情,如果是的话就继续读下去。快速地涉猎知识不是快餐没营养,而是判断一个领域里有什么好玩的事情,好玩的人。读一本书好比认识一个人,和一个人聊个10-20分钟你大致能够判断是否要继续聊下去,书也一样。