原创 528.leetcode題目講解(Python):按權重隨機選擇(Random Pick with Weight)

題目如下: 有了497的解題基礎,這道題還是比較好解,使用bisect.bisect_left()來通過權重對元素進行定位。參考代碼如下: ''' @auther: Jedi.L @Date: Wed, Feb 27, 2019

原创 519. leetcode題目講解(Python):隨機翻轉矩陣(Random Flip Matrix )

題目如下: 這道題的思路爲將2維矩陣降爲一維,從而方便使用random函數獲取位置。由於我們只對值爲0的元素進行翻轉,所以需要避免已經被翻轉過的元素。在代碼中我們使用了一個set(因爲我們只關心存在與否)來對翻轉過的位置進行存儲。 參考

原创 477. leetcode題目講解(Python):在圓內隨機生成點(Generate Random Point in a Circle )

題目如下: 我們可以獲取的信息爲:圓心座標(x,y),半徑。 所以,我們可以取得隨機點的座標範圍: x : [x-r, x+r] y : [y-r, y+r] 從圖形上表示,我們可以獲取一個正方形的範圍,如下圖所示: 因此通過

原创 迴旋的階梯 2019.01

演奏樂器和點擊流媒體應用播放鍵的區別在於:樂器的演奏過程可以融入對音樂的私人理解,相比播放軟件的刻板重現,樂器演奏的缺陷或者魅力在於每次輸出的差異性。其實這麼說不嚴謹,本質上來看,數字播放器本身也是一種樂器。 家長爲小孩挑選學習樂器時,

原创 470. leetcode題目講解(Python):用 Rand7() 實現 Rand10()

題目如下: 首先需要注意的是,數字1-10應該具有相同的生成概率。由於我們只能使用rand7函數,所以思路必然是組合使用rand7函數。 如果假設: a = rand7() b = rand7() 那麼通過 x = a + (b -

原创 Leetcode 題目的正確打開方式

從2018年進行Leetcode的題目講解以來,發現大家反饋的主要問題有以下幾種: 被題目數量嚇到:目前題庫中的題目數量快1000了,每天做5個題目也得200天才能做完。 做了白做: 花了很大功夫做完的題目,沒幾天就忘光了 最優解不好理解

原创 Ubuntu18 tensorflow-gpu + keras + python3 深度學習GPU 環境配置

1. 環境配置說明 幾乎花了一整天時間來配置環境,看了很多中文/英文的教程,重裝了n次系統才終於裝好環境。以下教程採用真機進行配置,並且不使用虛擬環境。 2. 安裝 Python3.6 ,Pip3 首先安裝python3.6 與 pip3:

原创 43. leetcode題目講解(Python):字符串相乘(Multiply Strings)

題目如下: 思路: 這道題值得注意的是,要求不能直接將string 轉換爲 int。 參考代碼: class Solution: def str2num(self, num): int_num = 0

原创 42. leetcode題目講解(Python):接雨水(Trapping Rain Water)

題目如下: 思路: 這道題我推薦使用雙指針的動態規劃方法求解,通過動態更新左右的最大高度(決定容量的是左右最大高度中較小的那一個),來獲取答案,可以單步調試看看求解的具體過程。 參考代碼: class Solution: def

原创 40. leetcode題目講解(Python): 組合總和 2 II(Combination Sum II)

題目如下: 解題思路: 這道題跟上一題(39題)非常類似,不同之處是這道題不允許重複使用candidates中的元素。我們可以直接在上一道題目的代碼上修改,遞歸的時候將 idx 加 1(需判斷是否超出candidates的範圍),另外由於

原创 41. leetcode題目講解(Python): 缺失的第一個正數(First Missing Positive)

題目如下: 解題思路: 題目要求時間複雜度爲O(n), 如果是對數組進行排序再查找,很難獲得比較好的效率。通過Python的 not in 判斷,可以更快的發現缺失目標。 參考代碼: class Solution: def fir

原创 39.leetcode題目講解(Python): 組合總和

題目如下: 解題思路 這道題目的解題思路是,通過 sorted 函數先對候選數字的list進行排序,然後再使用遞歸的方法來獲取各個解。 參考代碼, beats 84% class Solution: def Solver(self

原创 Mac下安裝vim並配置 vimplus

vim 的強大不用多說,本文介紹下在mac下安裝vim並配置vimplus的流程。 首先,安裝homebrew,打開終端,複製下面代碼回車運行: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.

原创 基因編輯嬰兒與《光明王》

事件: 2018年11月26日,賀建奎宣佈,一對名爲露露和娜娜的基因編輯嬰兒於11月在中國健康誕生。11月26日,深圳市衛生計生委醫學倫理專家委員會表示,該項試驗進行前並未向該部門報備,正開會研究此事。 11月26日,122位科學家發聯

原创 38.leetcode題目講解(Python): 報數

題目如下: 解題思路:比較簡單的題目,我使用二維數組來記錄數字出現的個數 參考代碼如下,beats 86% class Solution: def count(self, snum): num_count = [