經典演算法題 01 矩陣

2021-10-05 02:10:47 字數 582 閱讀 3385

給定乙個由 0 和 1 組成的矩陣,找出每個元素到最近的 0 的距離。

兩個相鄰元素間的距離為 1 。

示例 1: 

輸入:0 0 0

0 1 0

0 0 0

輸出:0 0 0

0 1 0

0 0 0

示例 2: 

輸入:0 0 0

0 1 0

1 1 1

輸出:0 0 0

0 1 0

1 2 1

元素0和自身的距離是0,元素1和0的距離等於0到1的距離。

用乙個標記陣列記錄每個位置是否已經計算過距離。

初始化結果集和佇列,遍歷矩陣找到所有等於0的位置,結果集對應位置賦值0並且座標入隊。計算過距離的位置標記。

使用廣搜,佇列中元素出隊後向四個方向分別搜尋一次尋找1,如果搜尋位置存在1則記錄結果集距離為結果集中搜尋源點的值+1,並且入隊、標記。

class solution );

int direction = , , , };//上下左右

while (!queue.isempty()) );

return res;

經典演算法題

題目 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?1.程式分析 兔子的規律為數列1,1,2,3,5,8,13,21 分析 首先這個你得找規律,這個剛開始的時候不要太心急。不難看出有個很好的式子 從第三個...

PHP經典演算法題

面試題 演算法題 1 插入排序 一維陣列 基本思想 每次將乙個待排序的資料元素,插入到前面已經排好序的數列中的適當位置,使數列依然有序 直到待排序資料元素全部插入完為止。示例 初始關鍵字 49 38 65 97 76 13 27 49 j 2 38 38 49 65 97 76 13 27 49 j...

Python 經典演算法題

概念 動態規劃過程是 每次決策依賴於當前狀態,又隨即引起狀態的轉移。乙個決策序列就是在變化的狀態中產生出來的,所以,這種多階段最優化決策解決問題的過程就稱為動態規劃。演算法關鍵點 1 最優化原理,也就是最有子結構性質。這指的是乙個最優化策略具有這樣的性質,無論過去狀態和決策如何,對前面的決策所形成的...