פבר.28

כמה דרכים קיימות לעלות מדרגות

כמה דרכים קיימות לעלות מדרגות

צריך לעלות n מדרגות. אפשר לעלות 1 או 2 מדרגות ביחד. כמה דרכים יש לעלות את המדרגות? דוגמה: יש 3 דרכים לעלות 3 מדרגות: 1+2, 2+1, 1+1

  1. public int climbStairs(int n) {
  2. int[] dp = new int[n+1];//Ways to climb stairs
  3. dp[0] = 1; //0 stairs - 1 way
  4. dp[1] = 1; //1 stair - 1 way
  5. for(int i = 2; i<=n; i++) { //for each n we will calc number of ways
  6. dp[i] = dp[i-1] + dp[i-2];
  7. }
  8. return dp[n];
  9. }
  10.  
  11. //We can do it faster, without array
  12. public int climbStairs(int n) {
  13. if(n<=3) return n;
  14. int a = 1, b = 2, c = 3;
  15. for(int i = 4; i <=n; i++) {
  16. a = b;
  17. b = c;
  18. c = a + b;
  19. }
  20. return c;
  21. }
תגיות:
שתף את הסיפור הזה:

תגובות(0)

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה