python机器人运动范围问题的解答


Posted in Python onApril 29, 2019

机器人的运动范围Python实现:

问题:地上有个 m 行 n 列的方格。一个机器人从坐标(0,0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于 k 的格子。

例如,当 k 为 18 时,机器人能够进入方格(35,37),因为 3+5+3+7=18 但它不能进入方格(35,38),因为 3+5+3+8=19 请问该机器人能够达到多少格子?

回溯算法。

当准备进入坐标(i,j)时,通过检查坐标的数位来判断机器人能否进入。如果能进入的话,接着判断四个相邻的格子。

代码:

# -*- 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
Python文件处理
Feb 29 Python
python验证码识别的实例详解
Sep 09 Python
python实现聚类算法原理
Feb 12 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
python调用matlab的m自定义函数方法
Feb 18 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
python生成器用法实例详解
Nov 22 Python
Python tkinter三种布局实例详解
Jan 06 Python
Python如何使用input函数获取输入
Aug 06 Python
Python基于locals返回作用域字典
Oct 17 Python
Python初识逻辑与if语句及用法大全
Aug 07 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 #Python
Python 实现微信防撤回功能
Apr 29 #Python
python程序控制NAO机器人行走
Apr 29 #Python
Django web框架使用url path name详解
Apr 29 #Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 #Python
Django使用redis缓存服务器的实现代码示例
Apr 28 #Python
django的settings中设置中文支持的实现
Apr 28 #Python
You might like
什么是MVC,好东西啊
2007/05/03 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
Spy++的使用方法及下载教程
2021/01/29 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
本科毕业生自我鉴定
2013/11/02 职场文书
绿化先进工作者事迹材料
2014/01/30 职场文书
优良学风班总结材料
2014/02/08 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
企业精神口号
2014/06/11 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
利用Apache Common将java对象池化的问题
2022/06/16 Servers