給定乙個非空的整數陣列,
從陣列第乙個元素(下標為0的元素)開始遍歷進行移動,
下一次向後或向前移動 該元素的值 的位數
(值為正數向後移動,值為負數向前移動,值為零不移動),
依次類推進行移動,若某次移動陣列出現越界,
則說明陣列可以跳出,返回true;不能跳出則返回false;
輸入陣列a[5] = [1,2,3,2,5];
從第乙個元素開始a[0]=1,下次向後移動1位到第二個元素a[1]=2,
再次向後移動2位到第四個元素a[3],
因為下次向後移動2位(a[3]=2)後,向後陣列越界,即跳出陣列,
輸出true;
思路:如果訪問過的位置再次被訪問,說明陷入迴圈,退出,輸出false。def
helper
(steps)
: n =
len(steps)
position =
0 visited =
set(
)while
0<= position < n and position not
in visited:
visited.add(position)
position = position + steps[position]
return position > n-
1or position <
0if __name__ ==
"__main__"
: steps =
list
(map
(int
,input()
.strip()[
1:-1
].split(
',')))
if helper(steps)
:print
('true'
)else
:print
('false'
)
陣列跳躍問題
程式設計2 給出乙個非負整數陣列,最初定位在陣列的第乙個位置,陣列中的每個元素的值代表你在那個位置可以跳躍的最大長度,判斷你是否到達陣列的最後乙個位置 例如 a 返回true,a 返回false if 0 int jump int arr,int n,int x x代表當前走到的位置,也是每次遞迴改...
55 跳躍陣列
55.跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0...
LeetCode 陣列 跳躍問題
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出 fal...