原创 數學歸納法及例題分析

前言 學算法,不得不提的就是數學歸納法。許多算法都會用到歸納假設的思想,其追溯回去便是數學歸納法。 數學歸納法 最簡單和常見的數學歸納法是證明當n等於任意一個自然數時某命題成立。證明分下面兩步: 證明當n = 1時命題成立。 證明如果在n

原创 leetcode.84 柱狀圖中最大的矩形

84. 柱狀圖中最大的矩形 給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度爲 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。   以上是柱狀圖的示例,其中每個柱子的寬度爲 1,給定的高度爲 [2,

原创 leetcode.837 新21點

837. 新21點 愛麗絲參與一個大致基於紙牌遊戲 “21點” 規則的遊戲,描述如下: 愛麗絲以 0 分開始,並在她的得分少於 K 分時抽取數字。 抽取時,她從 [1, W] 的範圍中隨機獲得一個整數作爲分數進行累計,其中 W 是整數。

原创 leetcode.128 最長連續序列

128. 最長連續序列 給定一個未排序的整數數組,找出最長連續序列的長度。 要求算法的時間複雜度爲 O(n)。 示例: 輸入: [100, 4, 200, 1, 3, 2] 輸出: 4 解釋: 最長連續序列是 [1, 2, 3, 4]。

原创 leetcode.29 順時針打印矩陣

面試題29. 順時針打印矩陣 輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字。   示例 1: 輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 輸出:[1,2,3,6,9,8,7,4,5] 示

原创 leetcode.101 對稱二叉樹

101. 對稱二叉樹 給定一個二叉樹,檢查它是否是鏡像對稱的。   例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1 / \ 2 2 / \ / \ 3 4 4 3   但是下面這個 [1,2,

原创 leetcode.198 打家劫舍

198. 打家劫舍 你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非

原创 leetcode.64 騷操作求和

面試題64. 求1+2+…+n 求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。   示例 1: 輸入: n = 3 輸出: 6 示例 2:

原创 leetcode.287 尋找重複數

287. 尋找重複數 給定一個包含 n + 1 個整數的數組 nums,其數字都在 1 到 n 之間(包括 1 和 n),可知至少存在一個重複的整數。假設只有一個重複的整數,找出這個重複的數。 示例 1: 輸入: [1,3,4,2,2]

原创 leetcode.76 最小覆蓋子串

76. 最小覆蓋子串 給你一個字符串 S、一個字符串 T,請在字符串 S 裏面找出:包含 T 所有字符的最小子串。 示例: 輸入: S = "ADOBECODEBANC", T = "ABC" 輸出: "BANC" 說明: 如果 S 中

原创 leetcode.5 最長迴文子串

5. 最長迴文子串 難度中等2171收藏分享切換爲英文關注反饋 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 示例 1: 輸入: "babad" 輸出: "bab" 注意: "aba" 也是一

原创 leetcode.105 從前序與中序遍歷序列構造二叉樹

105. 從前序與中序遍歷序列構造二叉樹 難度中等 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。 注意: 你可以假設樹中沒有重複的元素。 例如,給出 前序遍歷 preorder = [3,9,20,15,7] 中序遍歷 inorder =

原创 leetcode.1371 每個元音包含偶數次的最長子字符串

1371. 每個元音包含偶數次的最長子字符串 難度中等191收藏分享切換爲英文關注反饋 給你一個字符串 s ,請你返回滿足以下條件的最長子字符串的長度:每個元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出現了偶

原创 分治算法

前言 我們常常會遇到一些規模很大的問題,大到無從下手,不知道怎麼解決。這時候怎麼辦,將大問題劃分爲小問題,小問題還不會解怎麼辦,那就再分,直到問題小到你會解爲止。這種思想就是分治。 分治 學習分治,就是三個字,“分”,“治”,“合”。 分

原创 幾何算法詳解與例題分析

前言 畫乃我思所欲,非我見所得。 幾何算法常常出現在計算機圖形學,大規模集成電路設計等方面,常常需要分析平面內點、線段、直線的關係,而其算法呢大多用到了歸納,分治等算法的思想。 幾何算法舉例 1.判斷點是否在多邊形內部 判斷p是否在多邊