用 A* Search Algorithm 走迷宮
前言
前一篇文章中,我使用了 Eller’s Algorithm 迷宮生成算法 來生成迷宮,這一篇文章會先介紹 A* Algorithm,並使用 A* Search Algorithm 來攻略迷宮,先偷看一下成果:
前一篇文章中,我使用了 Eller’s Algorithm 迷宮生成算法 來生成迷宮,這一篇文章會先介紹 A* Algorithm,並使用 A* Search Algorithm 來攻略迷宮,先偷看一下成果:
Monotonic Stack 本質上就是一個 Stack 而已,只不過在操作 Stack 時需要同時維護其單調的特性,本文會簡單介紹 Monotonic Stack 並附上兩個有一點點難度的 LeetCode 題目做練習:84. Largest Rectangle in Histogram、85. Maximal Rectangle。
Stream 是一個元素形成的隊列,其來源 (Source) 可以是集合或數組,Stream 本身並不會存儲元素,其操作也不會影響到原始來源,單純以數據流的方式來處理數據,依性質可以分為兩類:
在 Java 自學筆記 07 - Concurrent Queue 中我們使用 concurrent queue 來實作 Producer Consumer Problem,將生產者產出的 task 丟給 queue,消費者一有空閒就會去 queue 中拿新的 task 出來,實際上這就是 Thread Pool 的概念,不過過程中我們是自己去創建與管理 thread 和 queue,而 Java 其實提供了許多跟 Thread Pool 有關的介面,讓我們能夠更簡單的實現這些功能。