iT邦幫忙

資料結構與演算法相關文章
共有 314 則文章
鐵人賽 自我挑戰組 DAY 29

技術 Day29-[Grind 169 questions[Binary Tree] LeeCode 100、103、437

100. Same Tree 解題程式碼 var isSameTree = function (p, q) { if (p === null &&a...

鐵人賽 自我挑戰組 DAY 22

技術 Day 22 n 等分的新娘 其一

分而治之 分而治之(Divide and Conquer)是一個古老且廣泛使用的演算法策略。其核心概念是將大問題分解為若干較小的子問題,獨立解決這些子問題,然後...

鐵人賽 自我挑戰組 DAY 28

技術 Day28-[Grind 169 questions[Binary Tree] LeeCode 105、113、662

105. Construct Binary Tree from Preorder and Inorder Traversal 解題程式碼 var buildTr...

鐵人賽 自我挑戰組 DAY 27

技術 Day27-[Grind 169 questions[Binary Tree] LeeCode 543、199、104

543. Diameter of Binary Tree 解題程式碼 var diameterOfBinaryTree = function(root) {...

鐵人賽 自我挑戰組 DAY 26

技術 Day26-[Grind 169 questions[Binary Tree] LeeCode 110、102、236

110. Balanced Binary Tree 解題程式碼 /** * Definition for a binary tree node. * fun...

鐵人賽 自我挑戰組 DAY 24

技術 Day24-[Grind 169 questions][Binary] LeeCode 190、13、528

190. Reverse Bits 解題程式碼 var reverseBits = function (n) { let result = 0; for...

鐵人賽 自我挑戰組 DAY 23

技術 Day23-[Grind 169 questions][Binary] LeeCode 191、136、268

191. Number of 1 Bits 解題程式碼 var hammingWeight = function (n) { let count = 0;...

鐵人賽 自我挑戰組 DAY 21

技術 Day 21 來!威利在哪裡? 其二

利用圖論概念的搜尋 BFS (Breadth-First Search) Breadth-First Search (BFS) 是一種圖遍歷算法,用於搜索圖或樹...

鐵人賽 自我挑戰組 DAY 22

技術 Day22-[Grind 169 questions][Binary] LeeCode 67、287、338

67. Add Binary 解題程式碼 var addBinary = function (a, b) { let carry = 0; let re...

鐵人賽 自我挑戰組 DAY 21

技術 Day21-[Grind 169 questions][String] LeeCode 14、179、271

14. Longest Common Prefix 解題程式碼 var longestCommonPrefix = function (strs) { if...

鐵人賽 自我挑戰組 DAY 20

技術 Day 20 來!威利在哪裡? 其一

搜尋演算法 搜尋演算法就是在狀態空間進行枚舉,通過某種方式(可能是枚舉、或一些啟發是策略)來計算符合特定條件的解或最佳解。 常見的搜尋演算法 線性搜尋:線性搜...

鐵人賽 自我挑戰組 DAY 20

技術 Day20-[Grind 169 questions][String] LeeCode 438、49、424

438. Find All Anagrams in a String 解題程式碼 const alphabets = 'abcdefghijklmnopqrst...

鐵人賽 自我挑戰組 DAY 19

技術 Day 19 無謀的貪心 其二

經典貪心問題 找零問題 店員在收錢時,常常會希望可以拿到以最少紙鈔、硬幣組成的現金 那要怎麼才能 n 元以最少的紙鈔、硬幣組成呢? 新台幣常用的紙鈔、硬幣有以下...

鐵人賽 自我挑戰組 DAY 18

技術 Day 18 無謀的貪心 其一

到目前為止,我們講過了該怎麼「暴力」枚舉問題、教過了該遞迴實作上的技巧。 不過在遇到某些問題時,你是否曾想過:「感覺只要我每個步驟都採用最佳的策略,好像就能得到...

鐵人賽 自我挑戰組 DAY 17

技術 Day 17 遞獄樂 其二

遞迴是大事化小,要記得小事化無by 吳邦一 AP325 糖 + 香料 + 美好事物(圖論 and 遞迴) = 超多演算法 遞迴說到底其實只是實現演算法的「技...

鐵人賽 自我挑戰組 DAY 16

技術 Day 16 遞獄樂 其一

遞迴是大事化小,要記得小事化無by 吳邦一 AP325 遞迴的概念 數學裡的遞迴 若一個函數直接或間接地用自己定義自己,它就是一個遞迴函數。 有很多數列或函...

鐵人賽 自我挑戰組 DAY 19

技術 Day19-[Grind 169 questions][String] LeetCode 409、8、5

409. Longest Palindrome 解題程式碼 var longestPalindrome = function (s) { const cha...

鐵人賽 自我挑戰組 DAY 18

技術 Day18-[Grind 169 questions][String] LeetCode 125、242、3

125. Valid Palindrome 解題程式碼 var isPalindrome = function (s) { const loweCaseSt...

鐵人賽 自我挑戰組 DAY 17

技術 Day17-[Grind 169 questions][Array] LeetCode 977、16、435

977. Squares of a Sorted Array 解題程式碼 var sortedSquares = function (nums) { con...

鐵人賽 自我挑戰組 DAY 15

技術 Day 15 現出せよ!Explosion! 其三

枚舉算法是一種基本但極為強大的演算法策略,主要用於遍歷所有可能的解空間以找到最佳或符合特定條件的解。這種方法在第一眼看來可能效率不高,但實際上,透過一些巧妙的設...

鐵人賽 自我挑戰組 DAY 14

技術 Day 14 現出せよ!Explosion! 其二

位元枚舉 在程式、演算法的世界中,很多問題往往用二進位去看後,都可以得到實作起來很簡單的做法,而且二進位能表達的事情遠比我們想像的多!舉凡有或沒有、是或不是、開...

鐵人賽 自我挑戰組 DAY 13

技術 Day 13 現出せよ!Explosion! 其一

從今天開始,我們終於可以開始真正地介紹演算法了!首先我們要介紹的是一切演算法的根本:「枚舉法」 前言 枚舉可以說是演算法設計的根本,核心精神是利用電腦高速計算的...

鐵人賽 自我挑戰組 DAY 12

技術 Day 12 吾心吾行澄如明鏡,所作所為皆為 SPEED 其二

昨天所討論的是在實際實作中該如何讓程式符合預期的時間複雜度,而今天要進一步聊聊該如何讓程式表現的比想像更好! 常數真的不重要? 前幾天的文章在介紹複雜度時,曾提...

鐵人賽 自我挑戰組 DAY 11

技術 Day 11 吾心吾行澄如明鏡,所作所為皆為 SPEED 其一

在前十天中,我們重點主要放在複雜度的理論和分析的手法。可是理論都知道了,但在實際實作中到底要怎麼寫才能使程式的效率一如預期或甚至比想像更好呢?這就是我們接下來兩...

鐵人賽 自我挑戰組 DAY 10

技術 Day 10 不數迴圈就沒辦法分析了?技豈是如此不便之物 終章

均攤分析練習 今天如昨天最後所說,要再帶一個均攤分析的練習,今天要練習的範例相當經典,而且各大程式語言中像陣列的資料結構均是利用了該分析的結論來實作相關的成員函...

鐵人賽 自我挑戰組 DAY 16

技術 Day16-[Grind 169 questions][Array] LeetCode 560、283、253

560. Subarray Sum Equals K 解題程式碼 var subarraySum = function (nums, k) { const...

鐵人賽 自我挑戰組 DAY 15

技術 Day15-[Grind 169 questions][Array] LeetCode 128、189、525

128. Longest Consecutive Sequence 解題程式碼 var longestConsecutive = function (nums)...

鐵人賽 自我挑戰組 DAY 9

技術 Day 9 不數迴圈就沒辦法分析了?技豈是如此不便之物 其三

今天要介紹最後一種時間複雜度的分析技巧,要是你能夠把這幾天介紹的三種技巧融會貫通,之後在大部分的場景你應該都有辦法看出一段程式的時間複雜度。 之所以說大部分是...

鐵人賽 自我挑戰組 DAY 8

技術 Day 8 不數迴圈就沒辦法分析了?技豈是如此不便之物 其二

今天要繼續介紹時間複雜度的常用分析手法,文章內容參考了各種網路資源,其中最主要的是 AA 競程在 YouTube 的時間複雜度教學影片 ,有興趣的可以去他們的...