Java 1D Array (Part 2)

  • + 1 comment

    Hi. I took a look at the code and couldn't a bug. Your main() function seems fine to me (You create a slightly bigger game[] function than I do so you can leap to the end, but that seems fine). Your recursive cases Also add/subtract from "i" properly. There must be some base case or off-by-1 error. My suggestion is to find the exact test case that fails and to walk through it by hand to see what your code does. That will work much better than trying to reason through the code.

    • + 1 comment

      I will try it.Thanks a lot.

      • + 1 comment

        Your code fails on the following test case:

        1
        18 4
        0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1
        
        • + 2 comments

          Hi. I ran my code with your input and it correctly printed YES. This can be done by doing jumps of 1, 1, 4, 4, 4, 4.

          Full code available at HackerRank solutions.

          • + 2 comments

            not your code, the one from Vijay_Ravi...

            • + 1 comment

              I've made a correction in my code and the output for ibexxx's input is 'YES'.I just exchanged the first if statement and the else if statement following it. Yet the 5 testcases fail. I changed these lines

              if(i+leap<=n-1 && game[i+leap]==0 && leap!=0) i=i+leap;
                          else if(i+1<=n-1 && game[i+1]==0) i=i+1;
              

              which makes jumps of 4,4,4 to

              if(i+1<=n-1 && game[i+1]==0) i=i+1;
              else if(i+leap<=n-1 && game[i+leap]==0 && leap!=0) i=i+leap;
              

              which makes jumps of 1,1,4,4,4.

              • + 0 comments

                Now your code fails on:

                1
                16 4
                0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1
                
          • + 1 comment

            The change I have made to my code also does jumps of 1,1,4,4,4. Still the 5 testcases fail.

            • + 0 comments

              Your code fails because there is no retracing of paths possible incase you got stuck on any square. To retrace the path, use a stack. Pop the elements out of the stack only after verifying game[i+1],game[i-1] and game[i+leap] has a 0 or not.