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 相关文章推荐
理解Python中函数的参数
Apr 27 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
Python实现的生成格雷码功能示例
Jan 24 Python
python中返回矩阵的行列方法
Apr 04 Python
Python中文件的读取和写入操作
Apr 27 Python
Python代码缩进和测试模块示例详解
May 07 Python
在cmd中查看python的安装路径方法
Jul 03 Python
Python Numpy计算各类距离的方法
Jul 05 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
Python实现分数序列求和
Feb 25 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
python实现三壶谜题的示例详解
Nov 02 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
php 获取一个月第一天与最后一天的代码
2010/05/16 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
Javascript 继承实现例子
2009/08/12 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
Js中async/await的执行顺序详解
2017/09/22 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
深入解析Python中函数的参数与作用域
2016/03/20 Python
python编写Logistic逻辑回归
2020/12/30 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
基于Pytorch SSD模型分析
2020/02/18 Python
numpy库reshape用法详解
2020/04/19 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
三年级科学教学反思
2014/01/29 职场文书
租赁协议书范本
2014/04/22 职场文书
股东授权委托书
2014/10/15 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
2016年父亲节寄语
2015/12/04 职场文书