iT邦幫忙

演算法相關文章
共有 354 則文章
鐵人賽 Software Development DAY 15

技術 Day 15. Binary Tree Traversal-二元樹走訪

昨天看了二元樹的表示方式,今天來看看他的走訪!! 二元樹走訪(Binary Tree Traversal) 我 定義: 拜訪Binary tree 中每個Nod...

鐵人賽 Software Development DAY 14

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

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

鐵人賽 Software Development DAY 18

技術 Day 17 切出去合進來 升職發大財 - Merge Sort

Merge Sort 是一種透過切分資料再一一合併的排序演算法。 Merge Sort 有使用到 Divide and Conquer 與 Recursion...

鐵人賽 自我挑戰組 DAY 15
30天演算法解題 系列 第 15 篇

技術 Day 15:minimum waiting time

problem 輸入為一陣列,陣列不為空陣列且元素皆為正整數。每個元素代表一個任務的執行時間,一次只能執行一個任務,但順序可以換。 若每個任務的等待時間代表執行...

鐵人賽 自我挑戰組 DAY 14
30天演算法解題 系列 第 14 篇

技術 Day 14:run-length encoding

problem 輸入為一個不為空的字串,回傳該字串經過變動長度編碼 (run-length encoding) 的結果。 sample input:string...

鐵人賽 Software Development DAY 13

技術 Day 13. Binary tree-二元樹

昨天介紹了很多跟樹狀結構有關的名詞,今天開始介紹不同種類的樹吧ヽ(✿゚▽゚)ノ 二元樹(Binary Tree) 定義 可以為空集合 若不為空,則有root及...

鐵人賽 自我挑戰組 DAY 13
30天演算法解題 系列 第 13 篇

技術 Day 13:Caesar cipher encryptor

problem 輸入為一個正整數 k,以及一個字串,字串不為空且其中字元都是小寫英文字母。將字串中每個字元在字母表中移動 k 個位置,回傳得到的新字串。 字元移...

鐵人賽 自我挑戰組 DAY 12
30天演算法解題 系列 第 12 篇

技術 Day 12:first non-repeating character

problem 輸入為一個字串,其中字元都是小寫英文字母,回傳字串中第一個只出現一次的字元的索引值。如果所有字元都重複出現,則回傳 -1。 sample inp...

鐵人賽 Software Development DAY 13

技術 Day 12 我的回合,抽卡!!! - Insertion Sort

從第二個元素開始,往前比對,如果比前一個元素小,則交換位置,以此類推。 以 [30, 5, 1, 31, 10, 9, 2, 3, 4, 8, 7, 6] 來說...

鐵人賽 Software Development DAY 12

技術 Day 12. Tree-樹 ┏((= ̄(エ) ̄=))┛

一看到樹大家會想到甚麼勒,我會想到野餐,好想出去玩歐歐歐☆^(o´Ф∇Ф)o沒想到資料結構裡面也有樹和森林吧,他其實像是模擬現實生活中的樹幹、樹枝和葉子的樣子那...

鐵人賽 Software Development DAY 12

技術 Day 11 選我選我選我選我 - Selection Sort

Selection Sort 實作上是遍歷一次陣列,找出最小值,並將最小值與陣列的第一個值交換,以此類推,再遍歷一次陣列 (先前排序好的位置可以略過) 找出最小...

鐵人賽 Software Development DAY 11

技術 Day 11. Queue的製作與種類

昨天介紹了用array的方式做Queue,今天來介紹用linked list製作! [法二]用linked list製作 一、single linked lis...

鐵人賽 自我挑戰組 DAY 11
30天演算法解題 系列 第 11 篇

技術 Day 11:palindrome check

problem 輸入為一個不為空的字串,回傳該字串是否為回文 (palindrome)。所謂回文是指從前到後和從後到前寫法一樣的字串,只有一個字元的字串也是回文...

鐵人賽 自我挑戰組 DAY 10
30天演算法解題 系列 第 10 篇

技術 Day 10:spiral traverse

problem 輸入為一個長寬為 m * n (m 可以等於 n) 的雙層陣列,將其中所有的元素以螺旋的順序放入另一陣列回傳。 這裡的螺旋順序指的是從雙層陣列的...

鐵人賽 自我挑戰組 DAY 9
30天演算法解題 系列 第 9 篇

技術 Day 09:monotonic array

problem 輸入為一陣列,回傳陣列是否為單調陣列 (monotonic array)。 單調陣列有兩種情況:陣列為單調遞增 (非遞減),或單調遞減 (非遞增...

鐵人賽 Software Development DAY 9

技術 Day 9. Stack的各種應用

今天再來一天Stack,昨天說到Stack的應用有很多種,今天就來舉幾個實例給大家看吧ξ( ✿>◡❛)▄︻▇▇〓▄︻┻┳═一 Stack Permutation...

鐵人賽 自我挑戰組 DAY 8
30天演算法解題 系列 第 8 篇

技術 Day 08:move element to end

problem 輸入為一個元素皆為整數的陣列,以及一個整數 k,將所有陣列中為 k 的元素移動到末尾,並回傳陣列。題目要求原地進行,也就是需直接操作輸入陣列。其...

鐵人賽 Software Development DAY 10

技術 Day 10. Queue-佇列

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

鐵人賽 Software Development DAY 10

技術 Day 9 絕命雙排 - Linear Search & Binary Search

Linear Search Linear Search 非常常見,甚至在學迴圈時就已經用過了。以下直接給範例練習! Practice - Linear Sear...

鐵人賽 Software Development DAY 9

技術 Day 8 BO5-5 - Recursion

Recursion 的定義是一個會呼叫自己的函式。 Recursion 技巧在很多地方都有用到,例如: JSON.stringify & JSON....

鐵人賽 Software Development DAY 8

技術 Day 7 BO5-4 - Divide and Conquer

將一組資料切分成兩組或多組資料,再用切分後的資料進行處理。此技巧能有效減少時間複雜度。 此技巧大量用於搜尋演算法內,以下用 二分搜尋法 (Binary Sear...

鐵人賽 Software Development DAY 7

技術 Day 6 BO5-3 - Sliding Window

Sliding Window 跟上篇 Multiple Pointers 類似,定義兩個指標,一個是 start,一個是 end。 像是: start...

鐵人賽 自我挑戰組 DAY 7
30天演算法解題 系列 第 7 篇

技術 Day 07:smallest difference

problem 輸入為兩個不為空、元素皆為整數的陣列,回傳相差最小的一組數字 [a, b],其中 a 來自第一個陣列,b 來自第二個陣列。可以確定只會有一組解。...

鐵人賽 Software Development DAY 8

技術 Day 8. Stack-堆疊

講完了Array跟Linked list接下來我們來講Stack跟Queue吧d(`・∀・)b什麼是Stack勒,先舉一些日常生活中的例子,像是餐廳裡面洗好堆起...

鐵人賽 自我挑戰組 DAY 6
30天演算法解題 系列 第 6 篇

技術 Day 06:tournament winner

problem 至少兩支隊伍進行錦標賽,其中每一隊都會跟其他所有的隊伍進行一對一比賽。每場比賽贏的加 3 分,輸的加 0 分,不會有平手的情況。累積總分最高的就...

鐵人賽 自我挑戰組 DAY 5
30天演算法解題 系列 第 5 篇

技術 Day 05:non-constructible change

problem 輸入為一個元素皆為正整數的陣列,元素可能重複,假設每個數字代表一個硬幣的面額,回傳這些硬幣無法加總組合出的最小金額。例如陣列 [1, 2, 5]...

鐵人賽 Software Development DAY 7

技術 Day 7. Circular Linked List - 環狀鏈結 &Linked List 基本操作

昨天講了單向跟雙向鏈結,今天來講最後一個!!環狀鏈結ლ(́◕◞౪◟◕‵ლ)還有講一些Linked List 基本操作的pseudo code 環狀鏈結(Circ...

鐵人賽 Software Development DAY 6

技術 Day 5 BO5-2 - Multiple Pointers

Multiple Pointers 技巧是透過建立 pointer 變數代表目前指到哪個位置 (index)。使用兩個 pointer 代表目前查找的位置與範圍...

鐵人賽 Software Development DAY 11

技術 Day 10 還敢下來啊 - Bubble Sort

一種排序資料的方式,實務上不太常使用,除了某些特定情境。相對於其他排序方式,Bubble Sort 效能較差。 儘管如此,作為基礎中的基礎,最好還是要理解其概念...

鐵人賽 Software Development DAY 5

技術 Day 4 BO5-1 - Frequency Counter

Frequency Counter 是一種解題技巧,它使用物件的鍵值 (Key) 來記錄陣列或字串裡面特定值的出現次數。它可以避免一直遍歷資料,可以有效減少時間...