您將獲得乙個使用這三個可能值初始化的 m×n 2d 網格。
-1 - 牆壁或障礙物。
0 - 門。
inf - infinity是乙個空房間。我們使用值 2 ^ 31 - 1 = 2147483647 來表示inf,您可以假設到門的距離小於 2147483647。
在代表每個空房間的網格中填入到距離最近門的距離。如果不可能到達門口,則應填入 inf。
樣例
樣例1輸入:[[
2147483647,-
1,0,
2147483647],
[2147483647
,2147483647
,2147483647,-
1],[
2147483647,-
1,2147483647,-
1],[
0,-1
,2147483647
,2147483647]]
輸出:[[3
,-1,
0,1]
,[2,
2,1,
-1],
[1,-
1,2,
-1],
[0,-
1,3,
4]]解釋:
2d網路為:
inf -
10 inf
inf inf inf -
1inf -
1 inf -10
-1 inf inf
答案為:
3-10
1221
-11-
12-1
0-13
4樣例2
輸入:[[0
,-1]
,[2147483647
,2147483647]]
輸出:[[0
,-1]
,[1,
2]]
思路:
1、找到所有門所在的位置。
2、從門的地方開始進行廣度搜尋,門剛好是0,所以找到的每個房間值應該修改為上乙個房間值+1
3、要注意乙個房間被多次搜尋時,一定是第一次被搜到的值最小,所以,當乙個房間值不是2147483647時,就沒有必要再去修改了,這樣也避免了陷入死迴圈。
class
solution
;void
wallsandgates
(vectorint>>
&rooms)}}
int dx[4]
=;int dy[4]
=;while
(!q.
empty()
)}}}
};
lintcode 6 6 合併排序陣列
合併兩個排序的整數陣列a和b變成乙個新的陣列。您在真實的面試中是否遇到過這個題?yes 樣例給出a 1,2,3,4 b 2,4,5,6 返回 1,2,2,3,4,4,5,6 挑戰 你能否優化你的演算法,如果其中乙個陣列很大而另乙個陣列很小?標籤 相關題目 class solution public ...
6 6 痕跡清理
6.6.1.4.時間軸 6.6.2.linux 6.6.3.難點 6.6.4.注意 登入日誌 6.6.1.3.1.prefetch 預讀取資料夾,用來存放系統已訪問過的檔案的預讀資訊,擴充套件名為pf。位置在c windows prefetch。6.6.1.3.2.jumplists 6.6.1.3...
總結之一6 6
獵頭不是槍手 獵頭公司不是包辦公司,也不是幫候選人寫簡歷的槍手,候選人往往希望獵頭公司給他們的簡歷 潤色 但是包裝只是對簡歷本身而言讓你的優勢更突出,絕不會幫助你 包裝 你本身不具備的能力。另外簡歷一定不能做假,因為現在越來地越多的公司會做背景調查,職位越高,做調查的時間越長。當然,獵頭會幫助你整合...