需要注意的是,原題解中提到:必須注意使用 集合 set 作為對障礙物使用的資料結構,以便我們可以有效地檢查下一步是否受阻。如果不這樣做,我們檢查障礙點的速度可能會慢大約 10000 倍。
class
solution
:def
robotsim
(self, commands, obstacles)
:"""
:type commands: list[int]
:type obstacles: list[list[int]]
:rtype: int
"""ans=
0 d=
f=obstacleset =
set(
map(
tuple
, obstacles)
)#關鍵步
direction=
'+y'
direction_change=
x=0 y=
0for i in commands:
if i>0:
for k in
range
(i):
d[direction]+=1
coordinate =
(d['+x'
]- d[
'-x'
], d[
'+y'
]- d[
'-y'])
if coordinate in obstacleset:
d[direction]-=1
break
else
: direction=direction_change[direction+
str(i)
] ans=
max(
([d[
'+x'
]-d[
'-x'
],d[
'+y'
]-d[
'-y']]
[0]**
2+[d['+x'
]-d[
'-x'
],d[
'+y'
]-d[
'-y']]
[1]**
2),ans)
return
(ans)
class
solution
:def
uniquepaths
(self, m, n)
:"""
:type m: int
:type n: int
:rtype: int
"""# c^(m-1)_(m+n-2)
res =
1for i in
range
(m, m+n-1)
: res *= i
res /= i-m+
1return
int(res)
#**源於leetcode提交記錄提交用時最少的範例。
Python程式設計練習 機械人行走
1.leetcode974 模擬行走機械人 控制機械人行走的基本思想是 先更新方向變化,再以 步長1 更新座標。需要注意的是,原題解中提到 必須注意使用 集合 set 作為對障礙物使用的資料結構,以便我們可以有效地檢查下一步是否受阻。如果不這樣做,我們檢查障礙點的速度可能會慢大約 10000 倍。c...
機械人行走
某少年宮引進了一批機械人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有3種 左轉 記為l 右轉 記為r 向前走若干厘公尺 直接記數字 例如,我們可以對小車輸入如下的指令 15l10r5lrr10r20 則,小車先直行15厘公尺,左轉,再走10厘公尺,再右轉,不難看出,對於此指令...
藍橋杯 機械人行走
某少年宮引進了一批機械人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有3種 左轉 記為l 右轉 記為r 向前走若干厘公尺 直接記數字 例如,我們可以對小車輸入如下的指令 15l10r5lrr10r20 則,小車先直行15厘公尺,左轉,再走10厘公尺,再右轉,不難看出,對於此指令...