iT邦幫忙

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

技術 Day 8 BO5-5 - Recursion

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

鐵人賽 Software Development DAY 9

技術 Day 9. Stack的各種應用

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

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

技術 Day 09:monotonic array

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

鐵人賽 Software Development DAY 8

技術 Day 8. Stack-堆疊

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

鐵人賽 Software Development DAY 8

技術 Day 7 BO5-4 - Divide and Conquer

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

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

技術 Day 08:move element to end

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

鐵人賽 Software Development DAY 7

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

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

鐵人賽 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 6

技術 Day 6. Linked List -鏈結串列

Linked List (鏈結串列)◝( ゚∀ ゚ )◟ 介紹完Array接下來來看Linked List,他們可以算是好兄弟常常會一起被提到呢!陣列是屬於靜態...

鐵人賽 Software Development DAY 6

技術 Day 5 BO5-2 - Multiple Pointers

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

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

技術 Day 06:tournament winner

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

鐵人賽 Software Development DAY 5

技術 Day 4 BO5-1 - Frequency Counter

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

鐵人賽 Modern Web DAY 18

技術 Trick 17: 綿延不絕的隨機地形是咋做出來的?

不管你喜不喜歡沙盒遊戲,都無法否認我的世界(Minecraft)、泰拉瑞亞(Terraria)這些屹立了十多年仍然立於頂端的遊戲類型有多麼吸引玩家。 類似的沙盒...

鐵人賽 Software Development DAY 5

技術 Day 5. Array之特殊矩陣存放

昨天講了利用array來儲存一維,二維,三維....到n維矩陣,今天繼續來用array,我們來儲存一些酷逼八的矩陣(♛‿♛) 下、上三角矩陣 下三角矩陣(Low...

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

技術 Day 05:non-constructible change

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

鐵人賽 Software Development DAY 4

技術 Day 4. Array-陣列

陣列是什麼 陣列屬於一種靜態的資料結構,而且他會具有以下幾種特性: 需要使用一段連續的記憶體空間來儲存 用來儲存一群相同類型的資料 可以透過索引值快速存取想要...

鐵人賽 Software Development DAY 3

技術 Day 2 哎呀這什麼水平 - 時間與空間複雜度

在 Day 1 我們講到的複雜度表示都是指時間複雜度,在輸入的參數越多越大的情況下,所要執行的步驟(執行所需花費的時間)的增長趨勢。 我們也可以使用 Big O...

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

技術 Day 04:validate subsequence

problem 輸入為兩個陣列,皆不為空陣列且元素皆為整數,回傳第二個陣列是否為第一個陣列的子序列 (subsequence)。 sample input:ar...

鐵人賽 Software Development DAY 3

技術 Day 3. Asymptotic Notations-漸進式符號

昨天我們提到了資料結構跟演算法的定義及他們之間的關係,我們也可以知道,對於同一個問題,我們可以使用很多不同種類的演算法來解決他,但要怎麼判斷哪種演算法比較好呢?...

鐵人賽 Software Development DAY 3

達標好文 技術 演算法比你想像的重要

如果是非本科系一個剛轉職沒幾年的超級菜鳥很多人應該是沒有任何DSA的任何一丁點基礎的或甚至是本科系的菜鳥但是大學教DSA的時候還沒意識到這個東西還蠻重要的所以根...

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

技術 Day 03:three number sum

昨天寫到 two number sum 的兩種解法,一種使用兩層迴圈,時間為 O(n^2);另一種使用 hash table,時間為 O(n)。這裡先寫第三種解...

鐵人賽 Modern Web DAY 15

技術 Trick 14: 為什麼要寫自己的亂數產生器

今天的標題可能會讓人很困惑,明明JavaScript就提供了Math.random(),現成的亂數產生器為什麼放著不用,要自己瞎搞一個出來? 九成以上的遊戲都藉...

鐵人賽 Software Development DAY 2

技術 Day 2. 資料結構是什麼?演算法又是誰(´◓Д◔`)?

資料結構(data structure) 在電腦科學中,資料結構是電腦中儲存、組織資料的方式,其實就是資料加上去定義一些資料之間的關係,像是要運用什麼樣的邏輯來...

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

技術 Day 02:two number sum

problem 輸入為一陣列及一整數 target,如果陣列中有兩個數字 a, b 相加等於 target,回傳陣列 [a, b] (或 [b, a],順序都可...

鐵人賽 Software Development DAY 1

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

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

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

技術 Day 01:開始解題之前

去年轉職期間第一次參加鐵人賽,寫了三十篇關於演算法的文章。但因為當時還在認識階段,文章比較多概念上的討論,很少程式碼實戰。也因為這樣,後來在找工作時碰到演算法白...

鐵人賽 Modern Web DAY 13

技術 Trick 12: 直男與硬漢的交點-兩條線段的碰撞問題

昨天我們學會了怎麼用內積檢測角色圓與彈道的碰撞,用這個方法可以完整搜集一個飛得很快的物件和遊戲中一般物件的碰撞事件。不過在一些較為少見的情況下,遊戲也可能需要知...

鐵人賽 Modern Web DAY 10

技術 Trick 9: 活塞運動的嘆息:sin與cos

三角函數是遊戲程式設計師必定要鑽研的課題之一,除了在向量的運算中需要大量的三角函數之外,光是正弦(sine)與餘弦(cosine)這兩個數學式本身,就能帶給遊戲...

鐵人賽 Modern Web DAY 9

技術 Trick 8: 狙擊槍的彈著點是在哈囉?

相信就算沒玩過射擊遊戲的同學,也多少看過別人玩Counter Strike或Call of Duty之類的遊戲吧。在類似的槍戰遊戲中都會出現射擊瞄準用的準星。一...