阿里筆試題 八卦陣

2021-08-19 21:57:40 字數 2409 閱讀 6368

具體題目忘記了,大致就是說乙個矩陣裡面有8個陣仗。。不為零的元素相連線的湊成乙個陣。求陣的最大值和最小值

基本思路就是深度優先搜尋(廣度),遍歷8次,搜尋中記得把搜過的值做標記,我的方法是直接賦為0,方便判斷,

下面是**:

importsys

defhelp(arr,i,j):

ifarr[i][j]== 0:

return0

sum=arr[i][j]

arr[i][j] = 0

ifi-1>=0

andj-1 >=0

andarr[i-1][j-1] !=0:

sum += help(arr,i-1,j-1)

ifi-1 >= 0

andarr[i-1][j] !=0:

sum += help(arr, i - 1, j)

ifi-1 >=0

andj+1

sum += help(arr, i - 1, j + 1)

ifj-1 >=0

andarr[i][j-1] != 0:

sum += help(arr, i , j - 1)

ifj+1

sum += help(arr, i, j + 1)

ifi+1

< len(arr)andj-1 >=0

andarr[i+1][j-1]:

sum += help(arr, i + 1, j-1)

ifi+1

< len(arr)andarr[i+1][j]:

sum += help(arr, i + 1, j)

ifi+1

< len(arr)andj+1

sum += help(arr, i + 1, j + 1)

returnsum

if__name__ =="__main__":

a = int(sys.stdin.readline())

b = int(sys.stdin.readline())

arr = [0

forjinrange(a)]

foriinrange(a):

line = sys.stdin.readline().strip()

line =line.split(' ')

line = [int(x)forxinfilter(lambdax: x!='',line)]

arr[i] = line

print (arr)

maxs = 0

mins = 10000000000000000000

forxinrange(8):

i, j = 0, 0

s = 0

whilei < a:

whilej < b:

ifarr[i][j] != 0:

s = arr[i][j]

breakj+=1

ifs == 0:

i+=1

j=0else:

breaktemp = help(arr,i,j)

maxs = max(maxs, temp)

mins = min(mins, temp)

print(maxs,mins)

籃球勝八卦

想不到,最新的娛樂八卦竟是來自籃球。下面是摘自網易的幾個新聞 曝張慶鵬被遼寧隊裁員 本賽季或無緣再登cba賽場 郭士強 要麼張慶鵬走要麼我走 晚上就知道結果了 球員紛紛微博力挺張慶鵬 易建聯 他至少有權轉會 遼寧將帥爭峰迴路轉 郭士強下課張慶鵬鐵定留隊 張慶鵬年薪埋下隱患 郭士強曾放話 看我怎麼整他...

八卦「潛規則」

最近鄭沛芳自爆和鳳凰衛視的恩恩怨怨應該算比較熱門的八卦之一,裡面涉及竇文濤 劉長樂,鄭最近有解釋說要潛規則她的和劉竇二人無關,熱熱鬧鬧,頗有談資。說來說去還是 潛規則 這個詞火起來好像是某女爆某黃姓導演 潛規則 該女子後並未答應之前的條件,並有xx錄影為證,果然是八卦爆點到沒話說,潛規則 於是大火。...

熊貓燒香八卦

熊貓以香為本 熊貓恆久遠,燒香永流傳。讓我們做得更好。飛利浦電子 讓熊貓燒得更香。傳奇世界,無限可能。盛大傳奇世界經典宣傳詞 熊貓燒香,死路一條。只管去做。耐克運動鞋 讓我們做得更好。飛利浦電子 讓熊貓燒得更香。傳奇世界,無限可能。盛大傳奇世界經典宣傳詞 熊貓燒香,死路一條。桑塔納 熊貓擁有桑塔納走...