python機(jī)器人運(yùn)動范圍問題的解答
機(jī)器人的運(yùn)動范圍Python實(shí)現(xiàn):
問題:地上有個(gè) m 行 n 列的方格。一個(gè)機(jī)器人從坐標(biāo)(0,0)的格子開始移動,它每一次可以向左、右、上、下移動一格,但不能進(jìn)入行坐標(biāo)和列坐標(biāo)的數(shù)位之和大于 k 的格子。
例如,當(dāng) k 為 18 時(shí),機(jī)器人能夠進(jìn)入方格(35,37),因?yàn)?3+5+3+7=18 但它不能進(jìn)入方格(35,38),因?yàn)?3+5+3+8=19 請問該機(jī)器人能夠達(dá)到多少格子?
回溯算法。
當(dāng)準(zhǔn)備進(jìn)入坐標(biāo)(i,j)時(shí),通過檢查坐標(biāo)的數(shù)位來判斷機(jī)器人能否進(jìn)入。如果能進(jìn)入的話,接著判斷四個(gè)相鄰的格子。
代碼:
# -*- coding:utf-8 -*-
class Solution:
def movingCount(self, threshold, rows, cols):
# write code here
matrix = [[True for i in range(cols)] for j in range(rows)]
result = self.findgrid(threshold, rows, cols, matrix, 0, 0)
return result
def judge(self, threshold, i, j):
if sum(map(int,str(i)+str(j))) <= threshold:
return True
else:
return False
def findgrid(self, threshold, rows, cols, matrix, i, j):
count = 0
if i < rows and i>=0 and j<cols and j>=0 and self.judge(threshold, i, j) and matrix[i][j]:
matrix[i][j] = False
count = 1+ self.findgrid(threshold, rows, cols, matrix, i-1, j) \
+ self.findgrid(threshold, rows, cols, matrix, i+1, j) \
+ self.findgrid(threshold, rows, cols, matrix, i, j-1) \
+ self.findgrid(threshold, rows, cols, matrix, i, j+1)
return count
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python3 用matplotlib繪制sigmoid函數(shù)的案例
這篇文章主要介紹了Python3 用matplotlib繪制sigmoid函數(shù)的案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Python?Pandas如何獲取和修改任意位置的值(at,iat,loc,iloc)
在我們對數(shù)據(jù)進(jìn)行選擇之后,需要對特定的數(shù)據(jù)進(jìn)行設(shè)置更改,設(shè)置,下面這篇文章主要給大家介紹了關(guān)于Python?Pandas如何獲取和修改任意位置的值(at,iat,loc,iloc)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01
tensorflow2.0實(shí)現(xiàn)復(fù)雜神經(jīng)網(wǎng)絡(luò)(多輸入多輸出nn,Resnet)
這篇文章主要介紹了tensorflow2.0實(shí)現(xiàn)復(fù)雜神經(jīng)網(wǎng)絡(luò)(多輸入多輸出nn,Resnet),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
windows下添加Python環(huán)境變量的方法匯總
默認(rèn)情況下,在windows下安裝python之后,系統(tǒng)并不會自動添加相應(yīng)的環(huán)境變量。此時(shí)不能在命令行直接使用python命令。今天我們就來看下,如何簡單快捷的在windows下添加Python環(huán)境變量2018-05-05
使用Python的pencolor函數(shù)實(shí)現(xiàn)漸變色功能
這篇文章主要介紹了使用Python的pencolor函數(shù)實(shí)現(xiàn)漸變色功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Python Arrow處理時(shí)間數(shù)據(jù)使用詳解(標(biāo)準(zhǔn)庫之外另一種選擇)
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫之外Arrow處理時(shí)間數(shù)據(jù)的另一種選擇使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Python讀取含url圖片鏈接的txt文檔方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了三種Python讀取含url圖片鏈接的txt文檔方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
python Pandas時(shí)序數(shù)據(jù)處理
這篇文章主要介紹了python Pandas時(shí)序數(shù)據(jù)處理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
Python網(wǎng)絡(luò)請求之Requests庫的高級功能運(yùn)用
在這篇文章中我們將進(jìn)一步深入學(xué)習(xí)Requests庫的高級功能,包括處理重定向,設(shè)置超時(shí),處理大文件以及錯(cuò)誤和異常處理,需要的朋友可以參考下2023-08-08

