1. int climbStairs(int n) {
  2. if(n == 1) return 1;
  3. vector<int> dp(2);
  4. dp[1%2] = 1;
  5. dp[2%2] = 2;
  6. for(int i = 3; i < n+1; i++)
  7. dp[i%2] = dp[(i-1)%2]+dp[(i-2)%2];
  8. return dp[n%2];
  9. }