最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python機(jī)器人運(yùn)動范圍問題的解答

 更新時間:2019年04月29日 10:13:03   作者:jiangjiane  
這篇文章主要為大家詳細(xì)解答了python機(jī)器人的運(yùn)動范圍問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下

機(jī)器人的運(yùn)動范圍Python實(shí)現(xiàn):

問題:地上有個 m 行 n 列的方格。一個機(jī)器人從坐標(biāo)(0,0)的格子開始移動,它每一次可以向左、右、上、下移動一格,但不能進(jìn)入行坐標(biāo)和列坐標(biāo)的數(shù)位之和大于 k 的格子。

例如,當(dāng) k 為 18 時,機(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)時,通過檢查坐標(biāo)的數(shù)位來判斷機(jī)器人能否進(jìn)入。如果能進(jìn)入的話,接著判斷四個相鄰的格子。

代碼:

# -*- 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)文章

最新評論

高碑店市| 清水河县| 会东县| 江阴市| 南华县| 二连浩特市| 沙雅县| 定边县| 河西区| 吉隆县| 南溪县| 方城县| 甘孜县| 辰溪县| 乐亭县| 通城县| 桂东县| 东港市| 黄冈市| 永登县| 许昌市| 泸水县| 乐清市| 社会| 南充市| 扶风县| 惠安县| 从江县| 英山县| 吴堡县| 化隆| 黄陵县| 册亨县| 依兰县| 论坛| 沈丘县| 新巴尔虎右旗| 西贡区| 孟连| 蕉岭县| 青阳县|