博客 / 列表

我有切糕 - 算法 - 棧與隊列 - 用棧組成隊列

力扣 232題 用棧實現隊列 請你僅使用兩個棧實現先入先出隊列。隊列應當支持一般隊列支持的所有操作(push、pop、peek、empty): 實現 MyQueue 類: void push(int x) 將元素 x 推到隊列的末尾 int pop() 從隊列的開頭移除並返回元素 int peek() 返回隊列開頭的元素 boolean empty() 如果隊列為空,返回 true ;否則,返

算法 , , 隊列

我有切糕 - 算法 - 鏈表 - 雙指針

力扣 第2題 : 兩數相加 給你兩個非空 的鏈表,表示兩個非負的整數。它們每位數字都是按照逆序的方式存儲的,並且每個節點只能存儲一位數字。 請你將兩個數相加,並以相同形式返回一個表示和的鏈表。 你可以假設除了數字 0 之外,這兩個數都不會以 0開頭。 示例 1: 輸入:l1 = [2,4,3], l2 = [5,6,4] 輸出:[7,0,8] 解釋:342 + 465 = 807.

雙指針 , 算法 , 鏈表

我有切糕 - 算法 - 字符串 - 反轉字符串中的單詞

力扣 151題 反轉字符串中的單詞 給你一個字符串 s ,請你反轉字符串中 單詞 的順序。 單詞 是由非空格字符組成的字符串。s 中使用至少一個空格將字符串中的 單詞 分隔開。 返回 單詞 順序顛倒且 單詞 之間用單個空格連接的結果字符串。 注意:輸入字符串 s中可能會存在前導空格、尾隨空格或者單詞間的多個空格。返回的結果字符串中,單詞間應當僅用單個空格分隔,且不包含任何額外的空格。

字符串 , 算法

我有切糕 - 算法 - 字符串 - 反轉字符串

題目1 力扣 344題, 反轉字符串 編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 s 的形式給出。 不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 示例 1: 輸入:s = ["h","e","l","l","o"] 輸出:["o","l","l","e","h"] 示例 2: 輸入:s = ["H","a","

字符串 , 算法

我有切糕 - 算法 - 哈希表 - 三數之和

力扣 15題 : 三數之和 給你一個整數數組 nums ,判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i != j、i != k 且 j != k ,同時還滿足 nums[i] + nums[j] + nums[k] == 0 。請 你返回所有和為 0 且不重複的三元組。 注意:答案中不可以包含重複的三元組。 示例 1: 輸入:nums = [

hash , 算法

我有切糕 - 算法 - 哈希表數據結構

哈希表,Hash Table,也稱為散列表。 哈希碰撞 key映射到同一個索引位置,叫做哈希碰撞。 哈希碰撞一般有兩種解決方法:拉鍊法 和 線性探測法。 拉鍊法 發生哈希衝突的元素被存儲在鏈表中。 線性探測法 在開放定址算法裏,線性探測法是散列解決衝突的一種方法,當hash一個關鍵字時,發現沒有衝突,就保存關鍵字, 如果出現衝突,則就探測衝突地址下一個地址,依次按照線性查

hash , 算法 , 哈希表

我有切糕 - 算法 - 鏈表 - 環形鏈表

力扣 142題 環形鏈表II 環形鏈表 II難度中等1959給定一個鏈表的頭節點 head,返回鏈表開始入環的第一個節點。如果鏈表無環,則返回null。如果鏈表中有某個節點,可以通過連續跟蹤next指針再次到達,則鏈表中存在環。 為了表示給定鏈表中的環,評測系統內部使用整數pos來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。如果pos是-1,則在該鏈表中沒有環。注意:pos不作為參數進行

算法 , 鏈表

我有切糕 - 算法 - 鏈表 - 虛擬頭結點

來源:力扣(LeetCode) 鏈接:https://leetcode.cn/problems/... 給你一個鏈表的頭節點 head 和一個整數 val ,請你刪除鏈表中所有滿足 Node.val == val 的節點,並返回 新的頭節點 。 示例 1: 輸入:head = [1,2,6,3,4,5,6], val = 6 輸出:[1,2,3,4,5] 示例 2: 輸入:head

算法 , 鏈表