You is climbing a stair case. It takes n steps to reach the top.
Each time you can either climb 1 or 2 steps. In what many distinct ways can you climb to the top?
Analysis:
There are a total of n steps, you can take one step at a time, you can walk two steps at a time, how many different ways to go?
This problem is similar to a small robot finding a unique path problem,
For a certain step I, there are two possible ways to reach it, one may be from its previous level, and one may be from its previous level,
So we get the formula of the optimal solution: ways[i] = ways[i-1] + ways[i-2];
Of course, we have to give the initial conditions, ways[0]=1, ways[1]=2.
The first step we have only one way to go to it, but for the second stage it is possible to embark on a primary level, or perhaps from a level two step.
Sort of like the Fibonacci sequence.
Public classSolution { Public intClimbstairs (intN) {if(N <= 1){ returnN; } int[] ways =New int[n]; ways[0] = 1; ways[1] = 2; for(inti = 2; I < n; i++) {Ways[i]= Ways[i-1] + ways[i-2]; } returnWays[n-1]; }}
Leetcode 70. Climbing stairs