我有切糕 -
算法 - 棧與隊列 - 用棧組成隊列
力扣 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
算法
,
鏈表