原创 45.leetcode題目講解(Python): 跳躍遊戲 II(Jump Game II)

Jump Game II - LeetCode 我們可以認爲“ nums”中每個項目的數字代表一個覆蓋區域。 因此,爲了解決這個問題,我們希望用最少的區域覆蓋整個範圍。值得注意的是,這我們雖然把這種算法稱爲貪婪算法,一般而言,貪婪算法找出

原创 《死亡擱淺》中的優盤項鍊與印第安銀飾

不知道大家還記得不,在《死亡擱淺》最初發布的宣傳影片中,Sam 帶了一條令人印象深刻的優盤項鍊: 之後各種周邊氾濫,很多人都買了一條,但至今大家都不知道這個項鍊到底是幹嘛的(重裝系統?大誤)。現在《死亡擱淺》的發售近在眼前,今天看其廣告

原创 leetcode題目講解(Python): 55 跳躍遊戲 (55 Jump Game)

Problem Jump Game Solution Back-forward 首先把 list 裏最後一項作爲目標。 由後向前尋找可以到達目標的位置i(滿足 i + nums[i] >= des)。 如果發現滿足條件的位置 i ,

原创 953.leetcode題目講解(Python):驗證外星語詞典(Verifying an Alien Dictionary)

題目 解題思路 簡單說一下這道題,難點在:讀不懂題目!!! 其實這道題說的是一個單詞在字典裏面的出現順序問題。 用中文詞彙舉例子: 蘋果(pingguo),香蕉(xiangjiao) 因爲我們的字母默認順序爲: abcdefghij

原创 使用Python解決APE專輯歌單亂碼的問題

問題描述 當播放APE格式的非英文專輯時,播放列表可能會顯示亂碼,如下圖所示: 原因 專輯的 .cue 文件不是 UTF-8 編碼。 解決方法 使用Python探測 .cue 的原始編碼,然後轉換到 UTF-8。 代碼下載

原创 《攝影哲學的思考》#讀書筆記

讀後感 拍照越來越容易,拿起手機,按個按鈕就行。攝影又越來越難,有了便捷的設備,好像怎麼拍都行。算法給予更漂亮的月亮和更無暇的面容; 技術性工具帶來更豐富的二次創作空間和過剩的像素。但我們敢聲稱技術進步給我們帶來了比銀鹽時代更好的作品嗎?

原创 383.leetcode題目講解(Python):鏈表隨機節點(Linked List Random Node)

題目 解題思路 這道題比較簡單,將鏈表結點的值逐一放入一個列表中,然後random一個返回值。 參考代碼 (beats 99%) ''' @auther: Jedi.L @Date: Fri, May 10, 2019 10:52 @Em

原创 398.leetcode題目講解(Python):隨機數索引(Random Pick Index)

題目 解題思路 這道題比較簡單,有兩種解題思路: 解法一 遍歷nums,記錄索引位置,然後通過random.sample() 返回一個結果。(beats 50%) 解法二 計算目標在nums中的個數 e,然後通過random.randin

原创 587.leetcode題目講解(Python):安裝柵欄(Erect the Fence)

1. 題目 2. 解題思路 這道題還是比較難,需要一些背景知識(已整理到第3節中)。本題的解題思路其實是需要尋找一個點集的凸外殼,Jarvis’s 算法比較容易理解,我們從x軸最左邊的點出發,尋找“最逆時針”的下一個點,直到回到最x軸左邊

原创 迴旋的階梯 2019.04

現在居然還有打開頁面會自動播放視頻/音頻 的網站存在,挺奇幻的,嗯,就是淘寶網。 在社交網絡上,看到討厭的內容總有取消關注衝動,一定得抑制住。很多“討厭”其實都有保留的價值:提醒你這個世界上還其它的多樣性,從而不至於生活在自己打造的“數字

原创 963.leetcode題目講解(Python):最小面積矩形 II(Minimum Area Rectangle II)

題目 解題思路 找出所有的矩形 逐一計算面積,找出面積最小的矩形 對於步驟1,判斷是否爲矩形的條件是:其對角線相交的中心點到四個角的距離相等。如下圖所示: 這裏有個小技巧,爲了對 list 中的點進行向量計算,我們使用 compl

原创 892.leetcode題目講解(Python):三維形體的表面積(Surface Area of 3D Shapes)

題目 解題思路 解這道題的思路爲,首先獲取一個座標點長方體的表面積,計算公式如下: surface = grid[i][j] * 4 + 2 然後減去其 “上、下、左、右” 與相鄰長方體的重疊表面積,減去的面積應該是相鄰兩個長方體中高度

原创 710.leetcode題目講解(Python):黑名單中的隨機數(Random Pick with Blacklist)

題目 解題思路 這道題的我的主要思路是,先通過累積概率選出各個白名單區間,然後再在白名單區間內生成隨機數。網上也有一些其他更好的解法,比如對黑名單的成員進行映射等等,但思路不是特別直觀,有些解法生成隨機數的概率也並不均勻。 參考代碼 im

原创 迴旋的階梯 2019.02

承認是自己不夠好和證明自己足夠好,都挺難的。關鍵難點在於“自己”模糊的邊界和混淆的定義。 我的Best Games,應該是塞爾達荒野之息和魂系列(黑暗之魂1&3,血源)。前者對於“遊戲”的理解力令人歎服,就算大家已經把它吹上天,給予這個

原创 497. leetcode題目講解(Python):非重疊矩形中的隨機點(Random Point in Non-overlapping Rectangles)

題目如下: 這道題的主要解題思路是利用矩形所包含的整數座標點來生成對於的權重,如下圖所示: 對於一個長寬爲a,b的矩形,我們可以通過: (a+1)*(b+1)來獲取其包含整數點的數量從而生成對應的權重信息。根據權重信息,有兩種解法: