iT邦幫忙

資料結構與演算法相關文章
共有 268 則文章
鐵人賽 自我挑戰組 DAY 13
一個月的演算法挑戰 系列 第 13

技術 Day13:快速排序(Quick Sort)

淺談Divide And Conquer Day12有提到Divide and conquer(分治法),簡單的說,將問題分解為小問題後,依次解決,最後再將解決...

鐵人賽 Software Development DAY 10

技術 Day 10. Queue-佇列

歐歐終於結束Stack的部分了,接下來換來介紹Queue~我們一樣先來舉一些生活中的例子,像是我們平常要買東西、搭車等等都需要排隊,先排到隊伍中的人會先獲得購買...

鐵人賽 Software Development DAY 14

技術 Day 14. Binary Tree之表示方式

大家會不會也常常有那種被時間追著跑的感覺呢(´A`。)最近的我時常有這種感覺,越是這種時候好像越想逃避,但不可以!我們一起加油吧,不管怎麼樣還是要持續努力持續進...

鐵人賽 自我挑戰組 DAY 8

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

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

技術 [Python][資料結構]稀疏矩陣(二)

給定三元序對 sparse1 = [ [5, 6, 4], [1, 2, 3],...

技術 [Pyhton][資料結構]稀疏矩陣(三)

給定兩個稀疏矩陣,並用三元序對表示: sparse1 = [ [5, 6, 4], [1, 2, 3],...

鐵人賽 Software Development DAY 30

技術 總整理&結論

哇~終於來到最後一天了,其實在這幾個禮拜裡面,我禮拜六的文章都是禮拜五晚上熬夜寫出來的,因為我六日白天都常常有事情,所以我都必須半夜就先搞定,不過在這30天自己...

技術 [Pyhton][資料結構]字串比對

先比對樣式的最後一個字元,再從頭開始比對 def match(pat,txt): lastt=len(txt)-1 lastp=len(pat)...

鐵人賽 自我挑戰組 DAY 1

技術 Day 1 我自己揭開序幕的故事

序言 —— 從不完美中尋找完美 大家好呀!我是暗魂駭客,接下來參賽的30天請各位多多指教!希望我能順利完賽。 我會選擇參賽的理由主要是有兩個:其一是想鍛鍊自己的...

鐵人賽 Software Development DAY 7
Easy to learn Algorithm 系列 第 7

技術 「Day7」資料結構-圖形&雜湊

昨天的樹狀結構是描述節點與節點之間,而圖形結構是兩個頂點之間是否相連。在圖形中連接兩點的邊若填上加權值,這類就稱為網路。 圖形簡介 圖形理論最早是18世紀的尤拉...

鐵人賽 Software Development DAY 3
Easy to learn Algorithm 系列 第 3

技術 「Day3」最常見演算法II

常見演算法簡介二 今天介紹剩下常見的演算法~ 動態規劃法(Dynamic Programming Algorithm) 動態規劃法主要是如果一個問提答案與子問題...

鐵人賽 自我挑戰組 DAY 29

技術 Day 29 群星歸位...永恆的海底...資結升起...萬物歸七

Disjoint-set Data Structure 主要特性 Disjoint-set(並查集)是一種數據結構,用於追蹤和管理多個不相交的集合。其核心功能是...

鐵人賽 自我挑戰組 DAY 24

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

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

鐵人賽 自我挑戰組 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 9

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

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

鐵人賽 自我挑戰組 DAY 5

技術 Day 5 漸進符號什麼的最討厭了!

漸進符號 其實如果有看完前四天的文章並有試著跟著練習的話,你對時間複雜度應該有基本的感覺了就像折斷HB鉛筆會發出啪的一聲一樣理所當然 不過接下來說的漸進符號可以...

鐵人賽 自我挑戰組 DAY 20

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

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

鐵人賽 自我挑戰組 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 7

技術 Day7-Heap 堆積

Heap 是一種特別的完全二元樹(Complete Binary Tree),在一顆二元樹中,若除最後一層外的其他層都是充滿節點的,並且最後一層要麼是滿的,要麼...

鐵人賽 自我挑戰組 DAY 30

技術 Day30-[Grind 169 questions[Binary Tree] LeeCode 101、863、572 & 完賽心得

完賽心得 今年參加鐵人賽,個人感覺是水過一年的感覺XD,因為就只是把解題的練習記錄複製貼上來,但今年因為沒有備太多天的稿,所以在時程的壓力下,的確有達到督促自己...

鐵人賽 自我挑戰組 DAY 6

技術 Day 6 我說那個讀者們啊,剛才寫程式的時候,你有在分析吧?

一個理論的成立,通常也會帶動相關技術的進步。所以我們今天將利用昨天學的漸進符號,反過來改進我們實際在估算複雜度的流程。 實際的複雜度估計 昨天在最後提到了兩個問...

鐵人賽 自我挑戰組 DAY 30

技術 Day30 - 從競賽程式學習資料結構與演算法-最後總結

終於到最後一天了,在這過程中有著無數次催隊友快點發文,也有幾次差點忘記需要寫文,甚至最近因為社團的事情和比賽沒有什麼時間可以寫文章,所以內容越來越簡單,不過終究...

鐵人賽 自我挑戰組 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 4

技術 Day 4 天上的階乘不說話,地上的 log 想長大

量級對實際程式的影響 看完昨天一大堆的數學後,我自己都寫得有點頭昏眼花了XD,但是理論也不能脫離現實,因此本段會實際用程式展示一下不同量級對於時間帶來的影響!...

鐵人賽 自我挑戰組 DAY 11

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

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

鐵人賽 自我挑戰組 DAY 23

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

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

鐵人賽 自我挑戰組 DAY 26

技術 Day 26 群星歸位...永恆的海底...資結升起...萬物歸三

Queue Queue 資料結構的主要特性是「First-In-First-Out」(FIFO)。這個特性就像我們排隊等待服務:最早來的人將是最早得到服務的人。...