小松鼠的演算法樂園
小松鼠的演算法樂園
97
會員
428
內容
加入
付費訂閱
首頁
內容
方案
關於
加入
小松鼠的演算法樂園
97
會員
428
內容
加入
連結
小松鼠的YT演算法教學頻道
小松鼠的YT演算法教學頻道
Top 5
1
🔗Python deque 與 Queue 相關的常用操作
2
Python 的 for ... loop 迴圈迭代語法
3
☘用Python來實現Disjoint Set (併查集/ Union-Find)
4
究竟什麼是 動態規劃DP?
5
用Python實現2️⃣0️⃣4️⃣8️⃣ 好玩的方塊消除遊戲
1
🔗Python deque 與 Queue 相關的常用操作
2
Python 的 for ... loop 迴圈迭代語法
3
☘用Python來實現Disjoint Set (併查集/ Union-Find)
4
究竟什麼是 動態規劃DP?
5
用Python實現2️⃣0️⃣4️⃣8️⃣ 好玩的方塊消除遊戲
動手學Python 從小專案體驗樂趣
🐍【Python 教學】超實用的拆包魔法: Unpacking
大家好。今天我們要來聊一個超級實用、但常被初學者忽略的魔法——Unpacking 與 Extended Iterable Unpacking。 如果你還不知道它們有多好用,那你一定會在看完這篇文章後忍不住想試一試這個神奇的unpacking語法。 XD ✨ 什麼是 Unpacking? 簡單
2025/11/30
11
13
用Python實現2️⃣0️⃣4️⃣8️⃣ 好玩的方塊消除遊戲
🎮 Python 2048 遊戲教學: 從零開始打造好玩的方塊消除遊戲! 哈囉,同學們!今天我們要一起用 Python 寫一個超經典的遊戲--2048! 而且這個遊戲可以直接在Command line(也就是命令提示字元、Console)玩!
2025/05/11
9
兒時回憶 剪刀✌️、石頭✊、布✋ 可線上玩,和電腦對戰
今天我們來學一個有趣的小專案: 自己用 Python 寫一個「剪刀、石頭、布」猜拳遊戲! 學完這個,你就不只是學程式設計, 還能順便和電腦玩幾把猜拳,重拾兒時回憶喔!😄
2025/05/04
10
🔗Python deque 與 Queue 相關的常用操作
從Python 內建deque資料結構的角度切入, 同時了解deque 與 FIFO Queue相關的function用法。 collections.deque是一種兩端點皆可進出的雙端佇列 在兩端點高效地在O(1)常數時間內添加和刪除元素。 這使得deque非常適合實現FIFO Queue
2024/10/10
33
2
⭕⭕❌❌回憶殺 python實現 井字遊戲 可線上玩+AI對戰
井字遊戲(OOXX)的遊戲描述 Tic Tac Toe(井字遊戲)是經典的雙人棋盤遊戲,在一個3x3的方格中進行。 每回合兩個玩家輪流選一個位置,先讓自己的符號(是 X 或 O)在 水平線、垂直線或對角線上連成一線的玩家宣告獲勝。
2024/09/27
35
3
🔯從Python來學BFS廣度優先探索 與 等權圖的最短路徑Shortest Path
深入探討圖(Graph)的基本概念 及 最短路徑Shortest Path的尋找。 我們專注於廣度優先搜尋(BFS)演算法,以等權圖的最短路徑為例, 詳細說明如何利用BFS從起點擴散到終點,並且提供詳細的程式碼範例。 透過實作,讀者能夠更清楚理解圖論及BFS的應用,並體會水波紋擴散模型的重要性。
2024/09/23
32
5
🔯從Python來學圖論Graph 與 BFS廣度優先探索
定義 圖Graph: 由節點和邊所組成的一個網狀資料結構。 圖的表達方式Graph representation: 常見的有相鄰串列adjacency list或相鄰矩陣adjacency matrix。 本文以adjacenct list作為示範。 節點Vertex: 節點
2024/09/15
34
1
🔯從Python來學圖論Graph 與 DFS深度優先探索
定義 圖Graph: 由節點和邊所組成的一個網狀資料結構。 圖的表達方式Graph representation: 常見的有相鄰串列adjacency list或相鄰矩陣adjacency matrix。 本文以adjacenct list作為示範。
2024/09/11
67
3
🔼用Python來實現 Min Heap 最小堆
Min-Heap 最小堆是一種特殊的樹狀資料結構, 其中每個節點的值都小於或等於其子節點的值。這意味著最小值總是位於根節點。 Min-Heap 常用於實作優先權佇列 (Priority Queue)、Dijkstra 演算法、 排序以及尋找中位數等應用。
2024/09/03
14
8
➕用Python來實現 Prefix sum 前綴和
Prefix Sum(前綴和)是一種用於計算陣列中任意區間和的高效方法。 前綴和算是一種犧牲空間換取時間效能提升的策略。 這在需要頻繁查詢區間和的情況下特別有用。 一開始,初始化時花費O(n)時間,掃描每個元素累加,建立一個prefix sum table, 接著,提供query介面查詢區間和
2024/09/02
41
6
查看更多
🐍【Python 教學】超實用的拆包魔法: Unpacking
大家好。今天我們要來聊一個超級實用、但常被初學者忽略的魔法——Unpacking 與 Extended Iterable Unpacking。 如果你還不知道它們有多好用,那你一定會在看完這篇文章後忍不住想試一試這個神奇的unpacking語法。 XD ✨ 什麼是 Unpacking? 簡單
2025/11/30
11
13
用Python實現2️⃣0️⃣4️⃣8️⃣ 好玩的方塊消除遊戲
🎮 Python 2048 遊戲教學: 從零開始打造好玩的方塊消除遊戲! 哈囉,同學們!今天我們要一起用 Python 寫一個超經典的遊戲--2048! 而且這個遊戲可以直接在Command line(也就是命令提示字元、Console)玩!
2025/05/11
9
兒時回憶 剪刀✌️、石頭✊、布✋ 可線上玩,和電腦對戰
今天我們來學一個有趣的小專案: 自己用 Python 寫一個「剪刀、石頭、布」猜拳遊戲! 學完這個,你就不只是學程式設計, 還能順便和電腦玩幾把猜拳,重拾兒時回憶喔!😄
2025/05/04
10
🔗Python deque 與 Queue 相關的常用操作
從Python 內建deque資料結構的角度切入, 同時了解deque 與 FIFO Queue相關的function用法。 collections.deque是一種兩端點皆可進出的雙端佇列 在兩端點高效地在O(1)常數時間內添加和刪除元素。 這使得deque非常適合實現FIFO Queue
2024/10/10
33
2
⭕⭕❌❌回憶殺 python實現 井字遊戲 可線上玩+AI對戰
井字遊戲(OOXX)的遊戲描述 Tic Tac Toe(井字遊戲)是經典的雙人棋盤遊戲,在一個3x3的方格中進行。 每回合兩個玩家輪流選一個位置,先讓自己的符號(是 X 或 O)在 水平線、垂直線或對角線上連成一線的玩家宣告獲勝。
2024/09/27
35
3
🔯從Python來學BFS廣度優先探索 與 等權圖的最短路徑Shortest Path
深入探討圖(Graph)的基本概念 及 最短路徑Shortest Path的尋找。 我們專注於廣度優先搜尋(BFS)演算法,以等權圖的最短路徑為例, 詳細說明如何利用BFS從起點擴散到終點,並且提供詳細的程式碼範例。 透過實作,讀者能夠更清楚理解圖論及BFS的應用,並體會水波紋擴散模型的重要性。
2024/09/23
32
5
🔯從Python來學圖論Graph 與 BFS廣度優先探索
定義 圖Graph: 由節點和邊所組成的一個網狀資料結構。 圖的表達方式Graph representation: 常見的有相鄰串列adjacency list或相鄰矩陣adjacency matrix。 本文以adjacenct list作為示範。 節點Vertex: 節點
2024/09/15
34
1
🔯從Python來學圖論Graph 與 DFS深度優先探索
定義 圖Graph: 由節點和邊所組成的一個網狀資料結構。 圖的表達方式Graph representation: 常見的有相鄰串列adjacency list或相鄰矩陣adjacency matrix。 本文以adjacenct list作為示範。
2024/09/11
67
3
🔼用Python來實現 Min Heap 最小堆
Min-Heap 最小堆是一種特殊的樹狀資料結構, 其中每個節點的值都小於或等於其子節點的值。這意味著最小值總是位於根節點。 Min-Heap 常用於實作優先權佇列 (Priority Queue)、Dijkstra 演算法、 排序以及尋找中位數等應用。
2024/09/03
14
8
➕用Python來實現 Prefix sum 前綴和
Prefix Sum(前綴和)是一種用於計算陣列中任意區間和的高效方法。 前綴和算是一種犧牲空間換取時間效能提升的策略。 這在需要頻繁查詢區間和的情況下特別有用。 一開始,初始化時花費O(n)時間,掃描每個元素累加,建立一個prefix sum table, 接著,提供query介面查詢區間和
2024/09/02
41
6
查看更多
演算法題目解析
🆚大小有別 根據大小給予序號 Rank Transform of an Array_Leetcode #1331
題目敘述 Rank Transform of an Array 給定一個陣列arr,請根據數字的大小給予序號,序號值介於1~len( set(arr) )之間。 最大的數字給予最大的序號。 次大的數字給予次大的序號。 ...依此類推 最小的數字給予最小的序號1。
2024/10/06
15
4
🥂成雙成對 Check If Array Pairs Are Divisible by k_LC #1497
題目敘述 Check If Array Pairs Are Divisible by k 給定一個長度為偶數的整數陣列arr,和一個整數k 。 我們想把陣列元素兩兩一組組成pair,使得每個pair的總和可以被k整除。 如果做得到,返回True。 如果不行,返回False。
2024/10/01
13
7
📆行程安排 我的行事曆II_My Calendar II_Leetcode #731
My Calendar II 給定一個行事曆的class定義和行程安排的介面。 請完成下列function 1.建構子MyCalendarTwo() 2.boolean book(int start, int end) 在行事曆加入一項新行程,起始時間為start, 結束時間為end。
2024/09/29
30
5
📆行程安排 我的行事曆I_My Calendar I_Leetcode #729
Leetcode 729. My Calendar I 給定一個行事曆的class定義和行程安排的介面interface。 請完成下列function 1.建構子MyCalendar() 初始化MyCalendar物件 2.boolean book(int start, int end) 插入新行程
2024/09/26
10
7
▶循序漸進 實作報數機_Lexicographical Numbers_Leetcode #386
題目敘述 386. Lexicographical Numbers 給定一個數字n,請實作一個字典序(Lexical order)排列的報數機, 依字典序輸出所有1~n的數字。 你必須實現一個O(n) time線性時間,O(1) extra space常數額外空間的演算法。
2024/09/21
14
5
🎪獨樹一格 只出現一次的單字 Uncommon Words from Two Sentences_LC #884
884. Uncommon Words from Two Sentences 給定兩個字串s1 和 s2,請找出uncommon words,以陣列的形式返回答案。 uncommon word的定義: 某個單字只在s1出現一次,沒有出現在s2;或者 某個單字只在s2出現一次,沒有出現在s1。
2024/09/17
12
1
⏱須臾之間 最小時間差 Minimum Time Difference_Leetcode #539
539. Minimum Time Difference 給定一個輸入陣列timePoints,每個陣列元素都是一個24小時制的時間。 請問最小的時間差距是多少? 註: 請以分鐘為單位回答。
2024/09/16
9
2
♈成雙成對 尋找母音字母出現偶數的最長子字串_Leetcode #1371
1371. Find the Longest Substring Containing Vowels in Even Counts 給定一個字串s,請找出母音字母出現皆為偶數次的最長子字串的長度。 例如"paaoooq",母音字母出現皆為偶數次的最長子字串paaoo,長度為5。
2024/09/15
8
2
📶連綿不斷 擁有最大AND值的子陣列長度_Longest Subarray With Max AND_LC #2419
2419. Longest Subarray With Maximum Bitwise AND 給定一個輸入陣列nums,請找出擁有最大bitwise AND值的子陣列長度是多少?
2024/09/14
7
1
♒成雙成對 子陣列的XOR query_XOR Queries of a Subarray_Leetcode #1310
給定一個整數陣列arr,和一串區間XOR請求queries。 請計算queries所請求的區間XOR值,並且以陣列的形式返回答案。
2024/09/13
12
5
查看更多
🆚大小有別 根據大小給予序號 Rank Transform of an Array_Leetcode #1331
題目敘述 Rank Transform of an Array 給定一個陣列arr,請根據數字的大小給予序號,序號值介於1~len( set(arr) )之間。 最大的數字給予最大的序號。 次大的數字給予次大的序號。 ...依此類推 最小的數字給予最小的序號1。
2024/10/06
15
4
🥂成雙成對 Check If Array Pairs Are Divisible by k_LC #1497
題目敘述 Check If Array Pairs Are Divisible by k 給定一個長度為偶數的整數陣列arr,和一個整數k 。 我們想把陣列元素兩兩一組組成pair,使得每個pair的總和可以被k整除。 如果做得到,返回True。 如果不行,返回False。
2024/10/01
13
7
📆行程安排 我的行事曆II_My Calendar II_Leetcode #731
My Calendar II 給定一個行事曆的class定義和行程安排的介面。 請完成下列function 1.建構子MyCalendarTwo() 2.boolean book(int start, int end) 在行事曆加入一項新行程,起始時間為start, 結束時間為end。
2024/09/29
30
5
📆行程安排 我的行事曆I_My Calendar I_Leetcode #729
Leetcode 729. My Calendar I 給定一個行事曆的class定義和行程安排的介面interface。 請完成下列function 1.建構子MyCalendar() 初始化MyCalendar物件 2.boolean book(int start, int end) 插入新行程
2024/09/26
10
7
▶循序漸進 實作報數機_Lexicographical Numbers_Leetcode #386
題目敘述 386. Lexicographical Numbers 給定一個數字n,請實作一個字典序(Lexical order)排列的報數機, 依字典序輸出所有1~n的數字。 你必須實現一個O(n) time線性時間,O(1) extra space常數額外空間的演算法。
2024/09/21
14
5
🎪獨樹一格 只出現一次的單字 Uncommon Words from Two Sentences_LC #884
884. Uncommon Words from Two Sentences 給定兩個字串s1 和 s2,請找出uncommon words,以陣列的形式返回答案。 uncommon word的定義: 某個單字只在s1出現一次,沒有出現在s2;或者 某個單字只在s2出現一次,沒有出現在s1。
2024/09/17
12
1
⏱須臾之間 最小時間差 Minimum Time Difference_Leetcode #539
539. Minimum Time Difference 給定一個輸入陣列timePoints,每個陣列元素都是一個24小時制的時間。 請問最小的時間差距是多少? 註: 請以分鐘為單位回答。
2024/09/16
9
2
♈成雙成對 尋找母音字母出現偶數的最長子字串_Leetcode #1371
1371. Find the Longest Substring Containing Vowels in Even Counts 給定一個字串s,請找出母音字母出現皆為偶數次的最長子字串的長度。 例如"paaoooq",母音字母出現皆為偶數次的最長子字串paaoo,長度為5。
2024/09/15
8
2
📶連綿不斷 擁有最大AND值的子陣列長度_Longest Subarray With Max AND_LC #2419
2419. Longest Subarray With Maximum Bitwise AND 給定一個輸入陣列nums,請找出擁有最大bitwise AND值的子陣列長度是多少?
2024/09/14
7
1
♒成雙成對 子陣列的XOR query_XOR Queries of a Subarray_Leetcode #1310
給定一個整數陣列arr,和一串區間XOR請求queries。 請計算queries所請求的區間XOR值,並且以陣列的形式返回答案。
2024/09/13
12
5
查看更多
Leetcode精選75題 解析+統整
DFS 應用: 組合數之和 II_Combination Sum II_Leetcode #40
題目敘述 Combination Sum II_Leetcode #40 給定一個整數陣列candidates 和 目標值target。 每個陣列元素只能選擇一次,請問有多少種組合方法,可以使得組合數總和 = target? 請把滿足組合數總和 = target的組合方法以陣列的形式返回答案
2024/08/13
6
3
新學員 記得參考置頂的兩篇文章喔!
共 232 字
2024/08/06
4
1
新學員請留意
共 168 字
2024/06/06
5
3
究竟什麼是 動態規劃DP?
動態規劃Dynamic Programming其實是 一種泛用的演算法思考方式與演算法建構框架。 動態規劃並不拘束於只能解課本上特定的的範例題。 只要我們能找出DP狀態定義、DP遞迴結構、初始條件(終止條件),就能適用動態規劃來解題,以數學的形式表達,並且在紙筆上或者電腦上、計算機上計算
2024/06/01
14
3
Leetcode 精選75題 分配比重 題目與題解 熱門考點 演算法框架複習 目錄
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
2024/05/29
12
7
字字珠璣 替換後,最長的相等子字串_滑動窗口應用_Leetcode #1208
本文章複習了滑動窗口Sliding window的框架, 並且使用滑動窗口來解修改後,最長相等子字串的長度。 給定兩個字串s和t,還有對應的預算上限cost。 每修改一個字元就要付出對應的ASCII Code距離成本。 請問修改後s 和 t 最長的相等子字串長度是多少?
2024/05/29
7
5
單字接龍 用單字拼出整個句子 DP應用 Leetcode #140_Word Break II
探討如何使用DP動態規劃的方法來進行單字串接,包含了DP遞迴關係式、狀態定義、優化技巧和程式碼示例。同時分析了時間複雜度、空間複雜度和關鍵知識點。這是LeetCode的一個應用題,類似於Word Break I的延伸。
2024/05/25
14
拼字遊戲 拼出最高分的單字組合 (DFS回溯法應用) Leetcode #1255
知道如何從一組給定的英文字母和單字庫中的單字拼出最高分的單字組合。使用DFS + 回溯法 + 剪枝優化的演算法,詳細分析瞭如何展開所有可能的路徑,並且找出符合條件的狀態,協助讀者理解演算法背後的思維和方法。
2024/05/24
9
5
一魚多吃 多角度切入 Subset 子集合生成 Leetcode #78
子集合生成是一道經典的組合類上機考和面試題目。本篇文章介紹多個不同的解決方案,以及相關演算法框架。主要目標是給定n個相異的元素,產生所有的子集合。
2024/05/21
9
1
觸類旁通 從回溯法理解直線排列的本質 Permutation_Leetcode #46 #47
這篇文章,會帶大家快速回顧DFS+回溯法框架(還沒看過或想複習的可以點連結進去)。 用DFS+回溯法框架,解開 直線排列Permutations 的全系列題目。 幫助讀者鞏固DFS+回溯法框架這個重要的知識點。 回顧 DFS+回溯法框架 白話的意思 # 列舉所有可能的情況,遞迴展開所有分
2024/05/20
11
2
查看更多
DFS 應用: 組合數之和 II_Combination Sum II_Leetcode #40
題目敘述 Combination Sum II_Leetcode #40 給定一個整數陣列candidates 和 目標值target。 每個陣列元素只能選擇一次,請問有多少種組合方法,可以使得組合數總和 = target? 請把滿足組合數總和 = target的組合方法以陣列的形式返回答案
2024/08/13
6
3
新學員 記得參考置頂的兩篇文章喔!
共 232 字
2024/08/06
4
1
新學員請留意
共 168 字
2024/06/06
5
3
究竟什麼是 動態規劃DP?
動態規劃Dynamic Programming其實是 一種泛用的演算法思考方式與演算法建構框架。 動態規劃並不拘束於只能解課本上特定的的範例題。 只要我們能找出DP狀態定義、DP遞迴結構、初始條件(終止條件),就能適用動態規劃來解題,以數學的形式表達,並且在紙筆上或者電腦上、計算機上計算
2024/06/01
14
3
Leetcode 精選75題 分配比重 題目與題解 熱門考點 演算法框架複習 目錄
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
2024/05/29
12
7
字字珠璣 替換後,最長的相等子字串_滑動窗口應用_Leetcode #1208
本文章複習了滑動窗口Sliding window的框架, 並且使用滑動窗口來解修改後,最長相等子字串的長度。 給定兩個字串s和t,還有對應的預算上限cost。 每修改一個字元就要付出對應的ASCII Code距離成本。 請問修改後s 和 t 最長的相等子字串長度是多少?
2024/05/29
7
5
單字接龍 用單字拼出整個句子 DP應用 Leetcode #140_Word Break II
探討如何使用DP動態規劃的方法來進行單字串接,包含了DP遞迴關係式、狀態定義、優化技巧和程式碼示例。同時分析了時間複雜度、空間複雜度和關鍵知識點。這是LeetCode的一個應用題,類似於Word Break I的延伸。
2024/05/25
14
拼字遊戲 拼出最高分的單字組合 (DFS回溯法應用) Leetcode #1255
知道如何從一組給定的英文字母和單字庫中的單字拼出最高分的單字組合。使用DFS + 回溯法 + 剪枝優化的演算法,詳細分析瞭如何展開所有可能的路徑,並且找出符合條件的狀態,協助讀者理解演算法背後的思維和方法。
2024/05/24
9
5
一魚多吃 多角度切入 Subset 子集合生成 Leetcode #78
子集合生成是一道經典的組合類上機考和面試題目。本篇文章介紹多個不同的解決方案,以及相關演算法框架。主要目標是給定n個相異的元素,產生所有的子集合。
2024/05/21
9
1
觸類旁通 從回溯法理解直線排列的本質 Permutation_Leetcode #46 #47
這篇文章,會帶大家快速回顧DFS+回溯法框架(還沒看過或想複習的可以點連結進去)。 用DFS+回溯法框架,解開 直線排列Permutations 的全系列題目。 幫助讀者鞏固DFS+回溯法框架這個重要的知識點。 回顧 DFS+回溯法框架 白話的意思 # 列舉所有可能的情況,遞迴展開所有分
2024/05/20
11
2
查看更多
DP動態規劃 特訓班
♒成雙成對 子陣列的XOR query_XOR Queries of a Subarray_Leetcode #1310
給定一個整數陣列arr,和一串區間XOR請求queries。 請計算queries所請求的區間XOR值,並且以陣列的形式返回答案。
2024/09/13
12
5
🚗用圖論+DP來找 成功機率最高的路徑 Path w/ Max Probability_Leetcode #1514
Path with Maximum Probability 題目給定一個無向圖(雙向移動皆可), 提供每條邊的起終點,和每條邊對應的通過時的成功機率。 請問從起點start走到終點end的最高成功機率是多少? 如果完全沒有路徑可以抵達,則返回0。
2024/08/27
6
8
用字串DP來操作印表機 奇怪的印表機_Leetcode #664
題目敘述 664. Strange Printer 有一台奇怪的印表機, 每次操作只能連續印同樣的字母,但是列印的長度可以自由控制。 而且,印刷的時候,可以蓋過去舊的字元。 (這邊當然不合常理,讀者可以理解成塗了立可帶再蓋過去的情境) 給定一個輸入字串s,請問最少需要幾次操作,才能印出字串s?
2024/08/21
8
2
用DP來玩遊戲 石頭遊戲 III_Stone Game III_Leetcode #1406
題目敘述 1406. Stone Game III Alice 和 Bob 輪流玩取石頭的遊戲。 輸入陣列stoneValue 代表每顆石頭對應的價值。 規則如下: 每個人每回合可以從剩餘的石頭,從前面拿一顆、兩顆、或三顆石頭。 兩個人輪流交替拿。Alice先手,第一回合Alice
2024/08/20
9
2
字串DP: 用最少的操作次數生成字串_2 Keys Keyboard_Leetcode #650
題目敘述 Leetcode: 650. 2 Keys Keyboard 一開始初始化的時候,記事本上只有一個字元'A'。 只允許下列兩種操作 複製目前記事本上的整個字串。 貼上之前複製的內容,串接在尾端。 請問,最少需要幾個操作, 才能製造出內容都是 "AAA...A",長度為n的字串?
2024/08/19
6
2
數列DP應用: Ugly Number II _Leetcode #264
題目敘述: 264. Ugly Number II 定義Ugly number序列是質因數只有2, 3, 5的正整數數列。 也就是說 x = 2^i * 3^j * 5^k, where i >= 0, j >= 0, k >= 0 請計算第n項的Ugly number 等於多少?
2024/08/18
7
5
用DP來精打細算 切割木條的最小成本 Min Cost to Cut a Stick_Leetcode #1547
給定木板的長度和切割點位置,找到最小總切割成本。透過DP動態規劃和區間DP框架,定義DP狀態並推導出最小切割成本的遞迴關係式。複雜度分析為時間複雜度O(n^3)和空間複雜度O(n^2)。關鍵知識點在於挖掘切割問條的共通模式,透過範例和圖解輔助思考。
2024/07/30
10
1
圖論+DP: 字串轉換的最小成本 Min Cost to Convert String I_Leetcode #2976
題目敘述: Minimum Cost to Convert String I 給定字元轉換映射表original, changes和對硬的成本陣列cost。 請問字串source轉換到字串destination的最小成本是多少? 如果無解,請返回-1 如果有解,請返回整體的轉換最小成本。
2024/07/28
13
5
用格子點DP來解 三角形最小成本下降路徑 Triangle_Leetcode #120
題目敘述 Triangle 題目會給我們一個三角形的二維陣列triangle ,每個元素分別代表每個格子的成本,請問我們從最頂端到底部的下墜路徑的最小成本總和是多少? 每次下墜到下一排的時候,可以有兩種選擇: 1.往左下方的格子點移動。 2.往右下方的格子點移動。 測試範例 Examp
2024/06/14
14
3
用取捨DP框架來上色 粉刷房屋I_Paint House_Leetcode #256
Paint House 題目會給定一個成本陣列costs,分別代表每棟房屋粉刷成紅色、藍色、綠色的成本。 請問粉刷所有房屋的最小成本是多少,而且相鄰的房屋不可同一種顏色。
2024/06/12
16
5
查看更多
♒成雙成對 子陣列的XOR query_XOR Queries of a Subarray_Leetcode #1310
給定一個整數陣列arr,和一串區間XOR請求queries。 請計算queries所請求的區間XOR值,並且以陣列的形式返回答案。
2024/09/13
12
5
🚗用圖論+DP來找 成功機率最高的路徑 Path w/ Max Probability_Leetcode #1514
Path with Maximum Probability 題目給定一個無向圖(雙向移動皆可), 提供每條邊的起終點,和每條邊對應的通過時的成功機率。 請問從起點start走到終點end的最高成功機率是多少? 如果完全沒有路徑可以抵達,則返回0。
2024/08/27
6
8
用字串DP來操作印表機 奇怪的印表機_Leetcode #664
題目敘述 664. Strange Printer 有一台奇怪的印表機, 每次操作只能連續印同樣的字母,但是列印的長度可以自由控制。 而且,印刷的時候,可以蓋過去舊的字元。 (這邊當然不合常理,讀者可以理解成塗了立可帶再蓋過去的情境) 給定一個輸入字串s,請問最少需要幾次操作,才能印出字串s?
2024/08/21
8
2
用DP來玩遊戲 石頭遊戲 III_Stone Game III_Leetcode #1406
題目敘述 1406. Stone Game III Alice 和 Bob 輪流玩取石頭的遊戲。 輸入陣列stoneValue 代表每顆石頭對應的價值。 規則如下: 每個人每回合可以從剩餘的石頭,從前面拿一顆、兩顆、或三顆石頭。 兩個人輪流交替拿。Alice先手,第一回合Alice
2024/08/20
9
2
字串DP: 用最少的操作次數生成字串_2 Keys Keyboard_Leetcode #650
題目敘述 Leetcode: 650. 2 Keys Keyboard 一開始初始化的時候,記事本上只有一個字元'A'。 只允許下列兩種操作 複製目前記事本上的整個字串。 貼上之前複製的內容,串接在尾端。 請問,最少需要幾個操作, 才能製造出內容都是 "AAA...A",長度為n的字串?
2024/08/19
6
2
數列DP應用: Ugly Number II _Leetcode #264
題目敘述: 264. Ugly Number II 定義Ugly number序列是質因數只有2, 3, 5的正整數數列。 也就是說 x = 2^i * 3^j * 5^k, where i >= 0, j >= 0, k >= 0 請計算第n項的Ugly number 等於多少?
2024/08/18
7
5
用DP來精打細算 切割木條的最小成本 Min Cost to Cut a Stick_Leetcode #1547
給定木板的長度和切割點位置,找到最小總切割成本。透過DP動態規劃和區間DP框架,定義DP狀態並推導出最小切割成本的遞迴關係式。複雜度分析為時間複雜度O(n^3)和空間複雜度O(n^2)。關鍵知識點在於挖掘切割問條的共通模式,透過範例和圖解輔助思考。
2024/07/30
10
1
圖論+DP: 字串轉換的最小成本 Min Cost to Convert String I_Leetcode #2976
題目敘述: Minimum Cost to Convert String I 給定字元轉換映射表original, changes和對硬的成本陣列cost。 請問字串source轉換到字串destination的最小成本是多少? 如果無解,請返回-1 如果有解,請返回整體的轉換最小成本。
2024/07/28
13
5
用格子點DP來解 三角形最小成本下降路徑 Triangle_Leetcode #120
題目敘述 Triangle 題目會給我們一個三角形的二維陣列triangle ,每個元素分別代表每個格子的成本,請問我們從最頂端到底部的下墜路徑的最小成本總和是多少? 每次下墜到下一排的時候,可以有兩種選擇: 1.往左下方的格子點移動。 2.往右下方的格子點移動。 測試範例 Examp
2024/06/14
14
3
用取捨DP框架來上色 粉刷房屋I_Paint House_Leetcode #256
Paint House 題目會給定一個成本陣列costs,分別代表每棟房屋粉刷成紅色、藍色、綠色的成本。 請問粉刷所有房屋的最小成本是多少,而且相鄰的房屋不可同一種顏色。
2024/06/12
16
5
查看更多
Intro. to Pandas 入門題解
官方開放沙龍內搜尋文章,請多多利用。
在沙龍主頁面的右上角,現在多一個放大鏡圖案的搜尋介面。 裡面可以輸入你想看的主題、關鍵字或者Leetcode題號, 就可以找到相關的文章與演算法框架分析。 例如: 搜尋 DFS 搜尋 DP 搜尋 圖論 搜尋 Coin Change ... 歡迎舊雨新知多多利用!
2024/04/30
15
5
Method Chaining 函式呼叫鍊_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們列出所有體重>100公斤的動物的名字,並且必須依照體重weight作降序排列。 題目的原文敘述 測試範例 Example 1: Input: DataFrame animals: +----------+-
2024/01/10
2
Reshape Data: Melt 融合不同的資料欄位_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
2024/01/09
2
Reshape Data: Pivot 資料表的樞紐轉換_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,將資料表做樞紐轉換,垂直方向是月份,水平方向是不同的城市,而表格內容是該城市在某個月份的溫度。 題目的原文敘述 測試範例 Example 1: Input: +--------------+-
2024/01/09
2
免費公開試閱Intro to pandas解題文章
共 49 字
2024/01/09
1
Reshape Data: Concatenate 串接兩張資料表_Intro to Pandas
題目敘述 題目會給定兩個pandas DataFrame作為輸入,要求我們將兩張資料表,依照原有的順序串接在一起。 題目的原文敘述 測試範例 Example 1: Input: df1 +------------+---------+-----+ | student_id | name
2024/01/09
3
Fill Missing Data 填補指定欄位的缺失值_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將所有在欄位quantity的缺失值填補為0。 題目的原文敘述 測試範例 Example 1: Input:+-----------------+----------+-------+ | nam
2024/01/09
2
Change Data Type 改變指定欄位的資料型別_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將欄位grade的資料型別從原本的float變更為int整數型別。 題目的原文敘述 測試範例 Example 1: Input: DataFrame students: +------------
2024/01/09
1
Rename Columns 重新命名欄位名稱_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將所有的column資料欄位名稱重新命名。 id 改名為 student_id first 改名為 first_name last 改名為 last_name age 改名為 age_in_year
2024/01/09
1
Modify Columns 修改data column _Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表salary欄位為基準,把每一筆資料的薪水salary欄位值更新為原本的兩倍。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +--------
2024/01/09
1
查看更多
官方開放沙龍內搜尋文章,請多多利用。
在沙龍主頁面的右上角,現在多一個放大鏡圖案的搜尋介面。 裡面可以輸入你想看的主題、關鍵字或者Leetcode題號, 就可以找到相關的文章與演算法框架分析。 例如: 搜尋 DFS 搜尋 DP 搜尋 圖論 搜尋 Coin Change ... 歡迎舊雨新知多多利用!
2024/04/30
15
5
Method Chaining 函式呼叫鍊_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們列出所有體重>100公斤的動物的名字,並且必須依照體重weight作降序排列。 題目的原文敘述 測試範例 Example 1: Input: DataFrame animals: +----------+-
2024/01/10
2
Reshape Data: Melt 融合不同的資料欄位_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
2024/01/09
2
Reshape Data: Pivot 資料表的樞紐轉換_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,將資料表做樞紐轉換,垂直方向是月份,水平方向是不同的城市,而表格內容是該城市在某個月份的溫度。 題目的原文敘述 測試範例 Example 1: Input: +--------------+-
2024/01/09
2
免費公開試閱Intro to pandas解題文章
共 49 字
2024/01/09
1
Reshape Data: Concatenate 串接兩張資料表_Intro to Pandas
題目敘述 題目會給定兩個pandas DataFrame作為輸入,要求我們將兩張資料表,依照原有的順序串接在一起。 題目的原文敘述 測試範例 Example 1: Input: df1 +------------+---------+-----+ | student_id | name
2024/01/09
3
Fill Missing Data 填補指定欄位的缺失值_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將所有在欄位quantity的缺失值填補為0。 題目的原文敘述 測試範例 Example 1: Input:+-----------------+----------+-------+ | nam
2024/01/09
2
Change Data Type 改變指定欄位的資料型別_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將欄位grade的資料型別從原本的float變更為int整數型別。 題目的原文敘述 測試範例 Example 1: Input: DataFrame students: +------------
2024/01/09
1
Rename Columns 重新命名欄位名稱_Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將所有的column資料欄位名稱重新命名。 id 改名為 student_id first 改名為 first_name last 改名為 last_name age 改名為 age_in_year
2024/01/09
1
Modify Columns 修改data column _Intro to Pandas
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表salary欄位為基準,把每一筆資料的薪水salary欄位值更新為原本的兩倍。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +--------
2024/01/09
1
查看更多
加入沙龍