iT邦幫忙

資料結構與演算法相關文章
共有 322 則文章

技術 【演算法新手村】[初階]筆記04 - 前綴和(一維)

首先我們要引入一個問題,我要求一個陣列中從頭到某一項的和要怎麼辦呢? 這邊默認第幾項都是口語上的用法,也就是首項是第 1 項 你會說簡單啊,直接遍歷陣列不...

鐵人賽 Software Development DAY 7

技術 資料結構-LinkedList

LinkedList中文叫做鏈結串列,對於初學者來說會是一個相當不好學習的資料結構,想當初大學時為了用C語言來實作LinkedList在學習指標的過程真的是一波...

鐵人賽 Software Development DAY 27

技術 Day 26 展現解題 GAP - Heap Sort

Heap Sort 使用 Binary Heap 處理資料排序,也可視為 Selection Sort 的改良版。 兩者一樣都是將資料分成兩區,一區為排序好的,...

鐵人賽 Software Development DAY 23

技術 解題-Array

總算來到我們寫題目的環節了,首先第一天我們來學習Array類型的題目吧! Array技巧整理 Array類型的題目在我的經驗裡有幾個小技巧,大家可以參考看看。...

技術 【演算法新手村】[初階]筆記02 - 初識二分之常見問題

前置知識:【演算法新手村】[初階]筆記01 - 初識二分之二分搜尋配合使用效果更佳喔XD 二分搜尋的題目有不少,這邊講一些簡單的(難的跳過,請新手上路者放心食...

技術 Day13 演算法介紹:堆積(Heap)

堆積(Heap) 是一種特殊且完整的二元樹,可分為最大/小堆積樹兩種。最大堆積樹中所有節點的值都大或等於它左右子節點的值,這兩種樹的樹根(root)是其堆積樹中...

技術 Day8 Dynamic Programming 題目3:139. Word Break

原文題目 Given a string s and a dictionary of strings wordDict, return true if s can...

鐵人賽 Software Development DAY 22

技術 [One Punch 一拳搞定前後端面試] DAY-22 - Tree 之 Node

Tree Node More 本文同時發布於好讀整理版 上一篇我們小玩了一下 Tree 裡面 Node (節點)實作加資料,這邊我們來想想怎麼移除資料。 若...

技術 演算法 Fizz Buzz

##讓我們來學習演算法吧,此為閱讀[https://pjchender.blogspot.com/2017/09/fizz-buzz.html] PJ老師的課後...

鐵人賽 Software Development DAY 5

技術 資料結構-Array

開始進入到我們正式資料結構的環節了,首先我們先來介紹大家最熟悉的Array,Array就是一塊「連續的記憶體空間」,我們可以利用index去直接存取我們要的資料...

技術 【演算法新手村】[初階]筆記03 - 二分練習題

書接上回:【演算法新手村】[初階]筆記02 - 初識二分之常見問題 二分答案會有點困難,可以多思考,只要能掌握那怕毛皮,那你也是終於"略懂&quot...

鐵人賽 Software Development DAY 28

技術 解題-Greedy

Greedy的題目我認為是最難寫的,原因是我們如果沒有經過證明,會很難知道這是可行的答案,不過這邊還是找了幾題想讓大家感受一下Greedy演算法的思想。另外,撇...

技術 Average pair

兩數相加平均數 必須是被排序好的 應用在找尋有哪些配對符合所要的數值接下來讓我們實作吧!!! 迴圈版BigO(n^2) let array1 = [-11...

鐵人賽 自我挑戰組 DAY 23

技術 Day 23 n 等分的新娘 其二

更多分治例題 快速冪 快速冪算法是一種高效計算大整數指數冪的方法。傳統的方法是通過連續乘法來計算 a 的 b 次方,但當 b 非常大時,這種方法的效率非常低。快...

鐵人賽 自我挑戰組 DAY 19
一個月的演算法挑戰 系列 第 19

技術 Day19:鏈接串列(Linked List)

鏈接串列(Linked List) 鏈接串列是一種線性表,使用Pointer串接資料,好處是找到目標位置後,可以有效率的插入或刪除元素,陣列不適合在中間位置插入...

鐵人賽 自我挑戰組 DAY 9

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

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

鐵人賽 Software Development DAY 14

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

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

鐵人賽 Software Development DAY 10

技術 Day 10. Queue-佇列

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

技術 Day5 演算法介紹:動態規劃(Dynamic Programming)

動態規劃(Dynamic Programming) 動態規劃是一種有效率計算由子問題堆疊而成的演算法,是一種常見的解題方式。透過將問題分解成許多可以利用簡單方法...

技術 Array of arrays

Recursion + Loop let array = [[["c",["a"]],[["bc"]...

技術 【演算法新手村】[初階]筆記05 - 前綴和(二維)

書接上回:【演算法新手村】[初階]筆記04 - 前綴和(一維) 接著上篇一維前綴和的概念,我們這篇進入二維空間。當資料從一條線變成一個平面(矩陣),我們該如何...

鐵人賽 Software Development DAY 1

技術 Day 1. 演算法資料結構,五四三二一起GO!-開賽囉

歐歐歐又來參加一年鐵人賽ㄌ(⁰▿⁰) 去年因為必修課要求要參賽,過程中覺得我之後一定不會想再參加一次喇,好累哦(´A`。)但去了頒獎典禮,看到好多厲害的人,也覺...

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

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

鐵人賽 自我挑戰組 DAY 1

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

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

鐵人賽 自我挑戰組 DAY 8

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

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

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

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

鐵人賽 自我挑戰組 DAY 13
一個月的演算法挑戰 系列 第 13

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

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

技術 Hash Table-day 29

The big O of finding an element with sequential search method in a traditional a...

技術 Recursion

接下來我們要來學習很重要的遞迴,接下來讓我們了解吧 函式呼叫自己 使用到Stack Fibonacci function Recursion(n){...