tag:blogger.com,1999:blog-8522573717713847738.post7876225860246444649..comments2024-03-28T00:14:29.070-07:00Comments on Yu's Coding Garden : leetcode Question 38: Jump GameAnonymoushttp://www.blogger.com/profile/00263085222060621782noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-8522573717713847738.post-22505212086436896952020-10-08T11:27:13.181-07:002020-10-08T11:27:13.181-07:00can you do it using recursioncan you do it using recursionAnonymoushttps://www.blogger.com/profile/07253091201952670521noreply@blogger.comtag:blogger.com,1999:blog-8522573717713847738.post-84142124219471555302014-12-25T19:38:43.090-08:002014-12-25T19:38:43.090-08:00what about below solution:
class Solution {
publi...what about below solution:<br /><br />class Solution {<br />public:<br /> bool canJump(int A[], int n) {<br /> if(!n) return false;<br /> int target = n-1;<br /> for(int i = n-2;i>=0;i--){<br /> if((target-i)<=A[i]){target = i;}<br /> }<br /> if(target > 0) return false;<br /> return true;<br /> }<br />};<br /><br />will it pass all scenarios?amitdhar2009https://www.blogger.com/profile/07735862625244374265noreply@blogger.comtag:blogger.com,1999:blog-8522573717713847738.post-51030709680292647502013-12-07T08:35:54.133-08:002013-12-07T08:35:54.133-08:00class Solution {
public:
bool canJump(int A[],...class Solution {<br />public:<br /> bool canJump(int A[], int n) {<br /> // Start typing your C/C++ solution below<br /> // DO NOT write int main() function<br /> if (n==0) {return false;}<br /> if (n==1) {return true;}<br /><br /> int m=0;<br /> for (int i=0;i=n-1){return true;}<br /> }<br /> }<br /> return false;<br /> }<br />};<br /><br />why you need <br /> vectorB(n-1,false);<br /> B[0]=true;<br /><br />in second solution?Anonymoushttps://www.blogger.com/profile/16707783406402404348noreply@blogger.comtag:blogger.com,1999:blog-8522573717713847738.post-60522970612707439472013-05-03T19:46:45.316-07:002013-05-03T19:46:45.316-07:00Oh yes! Your code is right!
I forgot to consider ...Oh yes! Your code is right!<br /><br />I forgot to consider the bound range.<br /><br />Thanks for the reply!<br /><br /><br />Anonymoushttps://www.blogger.com/profile/00263085222060621782noreply@blogger.comtag:blogger.com,1999:blog-8522573717713847738.post-47197920738276317922013-05-03T19:17:02.459-07:002013-05-03T19:17:02.459-07:00Great post! but i+j could be out of range in your ...Great post! but i+j could be out of range in your first approach. One small modification would make your 1st approach pass the large set.<br />public static boolean canJump1(int[] A) {<br /> // Start typing your Java solution below<br /> // DO NOT write main() function<br /> int len=A.length;<br /> if(len==0) return false;<br /> if(len==1) return true;<br /> boolean[] dp=new boolean[A.length];<br /> dp[0]=true;<br /> for(int i=0;i<len;i++){<br /> if(dp[i]){<br /> int c=A[i];<br /> for(int j=1;j<=c;j++){<br /> if(i+j<len){<br /> dp[i+j]=true;<br /> }else{<br /> return true;<br /> }<br /> }<br /> }<br /> }<br /> return dp[len-1];<br /> <br /> }<br />Anonymoushttps://www.blogger.com/profile/04834293132293456304noreply@blogger.com