原创 最長公共子串問題

題目:給定兩個字符串,返回兩個字符串的最長公共子串 思路: 以下是來自左神的思路和代碼。 使用動態規劃的思想。創建一個數組dp,dp[i][j]表示必須以str1[i]和str2[j]這兩個字符結尾的最長公共子串的長度。 對於第一行的元素

原创 布隆過濾器

題目:不安全網頁的黑名單包含有100億個黑名單網頁,每一個網頁的URL最多佔用64B。現在想要設計一種網絡過濾刺痛可以根據網頁的URL判斷URL是否在黑名單上,請設計該系統。 要求:1.該系統允許有萬分之一的判斷失誤率          

原创 最長公共子序列——字節跳動

題目1:對於兩個子序列 S1 和 S2,找出它們最長的公共子序列。 思路1:以下內容來自大神CYC2008 這是一個動態規劃的問題 定義一個二維數組 dp 用來存儲最長公共子序列的長度,其中 dp[i][j] 表示 S1 的前 i 個字符

原创 leetcode382-鏈表隨機節點&蓄水池算法&多益筆試

題目: 給定一個單鏈表,隨機選擇鏈表的一個節點,並返回相應的節點值。保證每個節點被選的概率一樣。 進階: 如果鏈表十分大且長度未知,如何解決這個問題?你能否使用常數級空間複雜度實現? 示例: // 初始化一個單鏈表 [1,2,3]. Li

原创 leetcode-347前k個高頻元素

題目: 給定一個非空的整數數組,返回其中出現頻率前 k 高的元素。 示例 1: 輸入: nums = [1,1,1,2,2,3], k = 2 輸出: [1,2] 示例 2: 輸入: nums = [1], k = 1 輸出: [1] 說

原创 leetcode筆記——103二叉樹的鋸齒形層次遍歷

題目: 給定一個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。 例如: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9

原创 leetcode筆記——198打家劫舍

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

原创 leetcode筆記——96不同的二叉搜索樹

題目: 給定一個整數 n,求以 1 ... n 爲節點組成的二叉搜索樹有多少種? 示例: 輸入: 3 輸出: 5 解釋: 給定 n = 3, 一共有 5 種不同結構的二叉搜索樹: 1 3 3 2

原创 leetcode筆記——揹包問題總結2

1.找零錢的最少硬幣數 322. Coin Change (Medium) 題目: 給定不同面額的硬幣 coins 和一個總金額 amount。編寫一個函數來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返

原创 leetcode筆記——揹包問題總結1

這部分內容是參考大神CyC2018的代碼和總結,將leetcode中和揹包問題相關的放在這裏。 1.字符串按單詞列表分割 139. Word Break (Medium) 這個問題也可以使用揹包問題的思路,把這個代碼放在問題139中了。

原创 LeetCode筆記——31下一個排列

題目: 實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。 如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。 必須原地修改,只允許使用額外常數空間。 以下是一些例子,輸入位於左側列

原创 leetcode筆記95——不同的二叉搜索樹Ⅱ

題目: 給定一個整數 n,生成所有由 1 ... n 爲節點所組成的二叉搜索樹。 示例: 輸入: 3 輸出: [   [1,null,3,2],   [3,2,null,1],   [3,1,null,null,2],   [2,1,3

原创 揹包問題總結

在筆試的時候碰到了這個揹包問題,是第一次做,因此在這裏把相關的問題都總結在這裏。 參考大神的代碼,鏈接如下:https://blog.csdn.net/lanyu_01/article/details/79815801          

原创 leetcode筆記——206反轉鏈表

題目: 反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 進階: 你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題? 思路:使用迭代和遞歸兩種思路解決這個問題

原创 leetcode筆記——92反轉鏈表Ⅱ

題目: 反轉從位置 m 到 n 的鏈表。請使用一趟掃描完成反轉。 說明: 1 ≤ m ≤ n ≤ 鏈表長度。 示例: 輸入: 1->2->3->4->5->NULL, m = 2, n = 4 輸出: 1->4->3->2->5->NU