兩次過 Lintcode 116 跳躍遊戲

2021-08-29 02:10:09 字數 793 閱讀 5047

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

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

判斷你是否能到達陣列的最後乙個位置。

a =[2,3,1,1,4],返回 true.

a =[3,2,1,0,4],返回 false.

這個問題有兩個方法,乙個是貪心動態規劃

貪心方法時間複雜度為o(n)

動態規劃方法的時間複雜度為為o(n^2)

我們手動設定小型資料集,使大家可以通過測試的兩種方式。這僅僅是為了讓大家學會如何使用動態規劃的方式解決此問題。如果您用動態規劃的方式完成它,你可以嘗試貪心法,以使其再次通過一次。

動態規劃。

確定狀態:

最後一步:如果能跳到最後一塊石頭n-1, 我們考慮它跳的最後一步。這一步是從石頭j跳過來的,j並且最後一步不超過跳躍的最大距離:n-j<=a[j]

子問題:設dp[i]表示能不能跳到石頭i,則狀態方程:

dp[i] = or(0<=j

意思就是,只要試探到有乙個j的位置能跳到i,則返回true。

初始條件:

dp[0] = true

時間複雜度為o(n^2)

public class solution 

return true;

}}

兩次過 Lintcode 56 兩數之和

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。example1 給出 numbers 2,7,11,15 target 9,返回 0,1 example2 ...

兩次過 Lintcode 1209 構造矩形

對於乙個web開發者,如何設計頁面大小很重要。所以,給定乙個矩形大小,設計其長 l 寬 w 使其滿足如下要求 1.矩形區域大小需要和給定目標相等。2.寬度w不大於長度l,也即l w.3.長和寬的差異盡可能的小。返回設計好的長度l和寬度w。樣例 輸入 4 輸出 2,2 解釋 目標區域是4,所有可能的構...

兩次過 Lintcode 212 空格替換

設計一種方法,將乙個字串中的所有空格替換成 20。你可以假設該字串有足夠的空間來加入新的字元,且你得到的是 真實的 字元長度。你的程式還需要返回被替換後的字串的長度。對於字串 mr john smith 長度為13 替換空格之後,引數中的字串需要變為 mr 20john 20smith 並且把新長度...