讨论/算法和数据结构/题目爬楼梯/
题目爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

简介

为啥分配n+1个空间后就出现AddressSanitizer: heap-buffer-overflow on address 0x602000000058 at pc 0x000000404fd3 bp 0x7ffcdd9e0a90 sp 0x7ffcdd9e0a88这样的问题呢?n+1个空间就够了啊?求大佬赐教

代码

使用一段 行内代码

代码片段

class Solution {
public:
    int climbStairs(int n) {
        //if(n<=2)return n;递归超出时间限制
        //return climbStairs(n-1)+climbStairs(n-2);
        int *p=new int[n+1],sum=0;
        p[0]=0;p[1]=1;p[2]=2;
        if(n<=2)return p[n];
        for(int i=3;i<=n;i++)
        p[i]=p[i-1]+p[i-2];
        return p[n];
    }
};
展开讨论
共 1 个讨论

n+2就通过了