leetcode刷題之路45 跳躍遊戲 II

2022-08-13 05:15:12 字數 888 閱讀 6108

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

陣列中的每個元素代表你在該位置可以跳躍的最大長度。

你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。

示例:輸入: [2,3,1,1,4]

輸出: 2

解釋: 跳到最後乙個位置的最小跳躍數是 2。

從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步到達陣列的最後乙個位置。

說明:假設你總是可以到達陣列的最後乙個位置。

思路1:用正向遞迴的方法來解決。

void rec(vector& nums,int i,int temp,int &ans,int step)//

i 是當前位置 temp為當前要跳的步長 ans記錄最短路徑 step計算下次要跳多遠

//可以重新跳了

i=temp+i;//

更新i temp=0;//

更新temp

step++;//

更新步數

while(temp}int jump(vector&nums)

return

ans;

}

方法是沒問題的,只是時間超時了。。。

方法2:逆向思維,從後向前找

int rec(vector &nums,int end,int &ans)

return

temp;

}int jump(vector&nums)

return

ans;

}

還超時,牛皮。。。

方法3:貪心

int jump(vector&nums) 

return

ans;

}

LeetCode刷題45跳躍遊戲 II

1暴力超時 執行結果 超出時間限制 顯示詳情 最後執行的輸入 5,6,4,4,6,9,4,4,7,4,4,8,2,6,8,1,5,9,6,5,2,7,9,7,9,6,9,4,1,6,8,8,4,4,2,0,3,8,5 static int search int nums,int index,int ...

Evan的LeetCode刷題之路

二 資料庫 以此記錄本人的leetcode刷題之路。題目內容均 於leetcode 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2...

leetcode刷題之路38 報數

報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 1.1 2.11 3.21 4.1211 5.111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一 即 1211。給...