作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python机器人运动范围问题的解答由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
机器人的运动范围python实现:
问题:地上有个 m 行 n 列的方格。一个机器人从坐标(0,0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于 k 的格子.
例如,当 k 为 18 时,机器人能够进入方格(35,37),因为 3+5+3+7=18 但它不能进入方格(35,38),因为 3+5+3+8=19 请问该机器人能够达到多少格子?
回溯算法.
当准备进入坐标(i,j)时,通过检查坐标的数位来判断机器人能否进入。如果能进入的话,接着判断四个相邻的格子.
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# -*- 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
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/jiangjiang_jian/article/details/81979857 。
最后此篇关于python机器人运动范围问题的解答的文章就讲到这里了,如果你想了解更多关于python机器人运动范围问题的解答的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!