原创 觀察者模式

        觀察者設計模式是啥,具體原理是啥, 網上很多,就不多說了,這裏附上代碼相比於普通的類,觀察者模式在使用時,用了一個抽象類,來對於需要通知的觀察者進行通知這裏主要有幾個地方需要注意,一個是list,是用來存儲有哪些觀察者的。a

原创 模板方法

模板方法算是設計模式中比較簡單的一種了,爲什麼簡單,看完就知道了。下面這個是個父類,在實際的項目中,可以是一個動態庫的代碼,也可以是一個某些不容易改變的代碼。也就是說這個類是穩定下面兩個類是子類,主要用於對父類的擴展,如果說上面那個類是第三

原创 策略模式

        先看下下面的這部分代碼,有一個職業的枚舉,用來確認有哪些職業。在FGO類中,有一個Attack函數,表示不同角色進行不同的***。        初看這段代碼沒有什麼問題,但是隨着職業的增加,還會寫很多的if else語句,

原创 leetcode題解——1051.高度檢查器

學校在拍年度紀念照時,一般要求學生按照 非遞減 的高度順序排列。請你返回至少有多少個學生沒有站在正確位置數量。該人數指的是:能讓所有學生以 非遞減 高度排列的必要移動人數。示例: 輸入:[1,1,4,2,1,3] 輸出:3 解釋: 高度爲 

原创 leetcode題解——226翻轉二叉樹

翻轉一棵二叉樹。 示例: 輸入:      4      /  \      2   7       / \  / \      1   3 6  9 輸出:      4      /  \      7   2       / \  /

原创 leetcode題解——461漢明距離

兩個整數之間的漢明距離指的是這兩個數字對應二進制位不同的位置的數目。給出兩個整數 x 和 y,計算它們之間的漢明距離。注意:0 ≤ x, y < 231.示例: 輸入: x = 1, y = 4 輸出: 2 解釋: 1   (0 0 0 1

原创 leetcode題解——461漢明距離

兩個整數之間的漢明距離指的是這兩個數字對應二進制位不同的位置的數目。給出兩個整數 x 和 y,計算它們之間的漢明距離。注意:0 ≤ x, y < 231.示例: 輸入: x = 1, y = 4 輸出: 2 解釋: 1   (0 0 0 1

原创 leetcode題解——977.有序數組的平方

給定一個按非遞減順序排序的整數數組 A,返回每個數字的平方組成的新數組,要求也按非遞減順序排序。示例 1: 輸入:[-4,-1,0,3,10] 輸出:[0,1,9,16,100] 示例 2: 輸入:[-7,-3,2,3,11] 輸出:[4,

原创 leetcode題解——617.合併二叉樹

給定兩個二叉樹,想象當你將它們中的一個覆蓋到另一個上時,兩個二叉樹的一些節點便會重疊。你需要將他們合併爲一個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作爲節點合併後的新值,否則不爲 NULL 的節點將直接作爲新二叉樹的節點

原创 Python——多態

        Python作爲一門面對對象的語言,那麼肯定也是有多態這個屬性的,這裏主要跟C++的多態做一下類比        先看下面的代碼                               這裏可以看到,Child,Chil

原创 leetcode題解——804.唯一摩爾斯密碼詞

國際摩爾斯密碼定義一種標準編碼方式,將每個字母對應於一個由一系列點和短線組成的字符串, 比如: "a" 對應 ".-", "b" 對應 "-...", "c" 對應 "-.-.", 等等。爲了方便,所有26個英文字母對應摩爾斯密碼錶如下:[

原创 leetcode題解——832. 翻轉圖像

給定一個二進制矩陣 A,我們想先水平翻轉圖像,然後反轉圖像並返回結果。水平翻轉圖片就是將圖片的每一行都進行翻轉,即逆序。例如,水平翻轉 [1, 1, 0] 的結果是 [0, 1, 1]。反轉圖片的意思是圖片中的 0 全部被 1 替換, 1

原创 leetcode題解—1021、刪除最外層的括號

有效括號字符串爲空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括號字符串,+ 代表字符串的連接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括號字符串。如果有效字符串 

原创 leetcode題解——237、刪除鏈表中的節點

請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。現有一個鏈表 -- head = [4,5,1,9],它可以表示爲:示例1:輸入: head = [4,5,1,9], node = 5輸出: [4,

原创 leetcode題解——771. 寶石與石頭

 給定字符串J 代表石頭中寶石的類型,和字符串 S代表你擁有的石頭。 S 中每個字符代表了一種你擁有的石頭的類型,你想知道你擁有的石頭中有多少是寶石。J 中的字母不重複,J 和 S中的所有字符都是字母。字母區分大小寫,因此"a"和"A"是不