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> 會顯示為 A1B<sub>2</sub> 會顯示為 B2

值得注意的是,這個語法並不是 Markdown 的基本語法,因此並不是所有編輯器、在線平台都會支援。至少 Github 目前是支援支援的 😃。

Share

不知不覺12月又要結束了,但自己目前還是只能做到每周保證 ARTS 的更新,無法做到更新其他內容的博文,實屬慚愧 😦 😦 😦。