ARTS Week 18
Algorithm
本周的 LeetCode 题目为 55. 跳跃游戏
给定一个非负整数数组 nums
, 你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。
示例 1:
输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。
示例 2:
输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
class Solution {
public boolean canJump(int[] nums) {
boolean ans = false;
int maxIndex = 0;
for (int i = 0; i < nums.length; i++) {
if (i <= maxIndex) {
maxIndex = Math.max(maxIndex, i + nums[i]);
if (maxIndex >= nums.length - 1) {
ans = true;
break;
}
}
}
return ans;
}
}
Review
本周 Review 的英文文章为:我们需要你的初学者思维
作者先以维修自行车为例,分享自己如何从初学者一步步变为经验丰富的老手。作者分享自己还是初学者时,感觉进步很慢,会搞砸事情,也会感到沮丧甚至怀疑自己。但其实作为初学者,你有一个机器宝贵而短暂的视角,那便是“初学者思维”,包括了你对未来的看法、周围世界的看法、以及如何开始第一步的看法,最终会随着你学习的深入而永远消失。这些确实容易被我们忽视的超能力,因为我们作为初学者正陷入困境中,在这种状态下:
- 你不受观点和意见的影响。因为你没有观点,因此会包容各种观点,听得更深、看得更清楚
- 你的失败经验可以减少别人失败的几率
- 你像一个学生,意味着别人像老师一样
- 你可以问任何问题,即使这个问题很愚蠢,但无知者无罪
作者也给出来帮助初学者拥抱初学者思维的方法:
- 认识到它的价值并承认它的短暂性
- 向网友、你的同学、同时,甚至一个你信任的人,提出你搜有的”好“问题
- 认识到要求别人教你对他们来说是一种礼物
- 记住我们总有时候会是初学者
同时,作者也给出了一个有经验的人如何更好地帮助初学者:
- 鼓励他们提问并敢于提出你自己的“愚蠢”问题
- 拥抱教师的角色,愿意花时间教育帮助他们
- 如果你没有时间给出一个很好的答案,就说出来等你有时间后再来
- 愿意分享、讲述关于你的失误、错误、甚至灾难的故事
Tip
Markdown 如何实现上标和下标。Markdown 可以用 <sup></sup>
标签来实现上标的效果,可以用 <sub></sub>
标签来实现下标的效果。例如,A<sup>1</sup>
会显示为 A1,B<sub>2</sub>
会显示为 B2。
值得注意的是,这个语法并不是 Markdown 的基本语法,因此并不是所有编辑器、在线平台都会支持。至少 Github 目前是支持支持的 😃。
Share
不知不觉12月又要结束了,但自己目前还是只能做到每周保证 ARTS 的更新,无法做到更新其他内容的博文,实属惭愧 😦 😦 😦。