陣列移動跳躍

2021-10-23 13:25:16 字數 1033 閱讀 9538

給定乙個非空的整數陣列,

從陣列第乙個元素(下標為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...