華為OD機(jī)試-計(jì)算網(wǎng)絡(luò)信號(hào)
網(wǎng)絡(luò)信號(hào)經(jīng)過(guò)傳遞會(huì)逐層衰減,且遇到阻隔物無(wú)法直接穿透,在此情況下需要計(jì)算某個(gè)位置的網(wǎng)絡(luò)信號(hào)值。注意:網(wǎng)絡(luò)信號(hào)可以繞過(guò)阻隔物
?array[m][n] 的二維數(shù)組代表網(wǎng)格地圖
array[i][j]=0代表i行j列是空曠位置;
array[i][j]=x(x為正整數(shù))代表i行j列是信號(hào)源,信號(hào)強(qiáng)度是x;
array[i][j]=-1代表i行j列是阻隔物.
信號(hào)源只有1個(gè),阻隔物可能有0個(gè)或多個(gè)
網(wǎng)絡(luò)信號(hào)衰減是上下左右相鄰的網(wǎng)格衰減 1
現(xiàn)要求輸出對(duì)應(yīng)位置的網(wǎng)絡(luò)信號(hào)值。
輸入描述
輸入為三行,第一行為 m、n,代表輸入是一個(gè)mxn的數(shù)組。第二行是一串 m xn 如個(gè)用空格分隔的整數(shù)
每連續(xù)n個(gè)數(shù)代表一行,再往后 n個(gè)代表下一行,以此類推。對(duì)應(yīng)的值代表對(duì)應(yīng)的網(wǎng)格是空礦位置,還是信號(hào)源,還是阻隔物。第三行是i、j,代表需要計(jì)算 array[i][j]的網(wǎng)絡(luò)信號(hào)值。
注意:此處i和j均從 0 開始,即第一行i 為 0
輸出描述
輸出對(duì)應(yīng)位置的網(wǎng)絡(luò)信號(hào)值,如果網(wǎng)絡(luò)信號(hào)未覆蓋到,也輸出0。
一個(gè)網(wǎng)格如果可以途徑不同的傳播衰減路徑傳達(dá),取較大的值作為其信號(hào)值。
示例1:
輸入:
6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
1 4
輸出:
2
示例2:
輸入:
6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
2 1
輸出:
0
備注
1.m不一定等于n,m<100 n<100,網(wǎng)絡(luò)信號(hào)之和小于1000。
2.信號(hào)源只有1個(gè),阻隔物可能有0個(gè)或多個(gè)。
3.輸入的 m,n 與第二行的數(shù)組是合法的,無(wú)需處理數(shù)量對(duì)不上的異常情況。
4.要求輸出信號(hào)值的位置,不會(huì)是阻隔物。
————————————————
版權(quán)聲明:本文為CSDN博主「MISAYAONE」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://renjie.blog.csdn.net/article/details/128351616
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128351616
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128351598
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128351633
JavaScript實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/129034126
C語(yǔ)言版本持續(xù)更新中