diff --git a/Miscellaneous Algorithms/Climbing stairs/README.md b/Miscellaneous Algorithms/Climbing stairs/README.md new file mode 100644 index 00000000..f7a1eb95 --- /dev/null +++ b/Miscellaneous Algorithms/Climbing stairs/README.md @@ -0,0 +1,52 @@ + +# Climbing Stairs : + +## Description +We will perform a programme in C language called climbing stairs + +### Problem Defination + +1. You are climbing a staircase. + + +2. It takes n steps to reach the top. + + +3. Each time you can either climb 1 or 2 steps + +4. In how many distinct ways can you climb to the top? + + + +### Examples : + +Example 1: + +Input: n = 2 +Output: 2 +Explanation: There are two ways to climb to the top. +1. 1 step + 1 step +2. 2 steps + + + +Example 2: + +Input: n = 3 +Output: 3 +Explanation: There are three ways to climb to the top. +1. 1 step + 1 step + 1 step +2. 1 step + 2 steps +3. 2 steps + 1 step + + + + + +### Time Complexity + +Time complexity: O(n) +n is number of steps to reach the top. + +Space complexity: O(n) +For dp list diff --git a/Miscellaneous Algorithms/Climbing stairs/program.c b/Miscellaneous Algorithms/Climbing stairs/program.c new file mode 100644 index 00000000..b4d06a6d --- /dev/null +++ b/Miscellaneous Algorithms/Climbing stairs/program.c @@ -0,0 +1,13 @@ + +int climbStairs(int n) { + if(n<1){ + return 0; + } + int dp[100]; + dp[0] =1; + dp[1] = 2; + for(int i= 2; i