我正在解决Leetcode上的House Robber问题,我得到了一个“Runtime Error:reference binding to'int‘类型的null指针”。 为什么会出现这个错误?
我的代码:
class Solution {
public:
int rob(vector<int>& a) {
int n=a.size();
vector<int> dp(n);
for(int i=0;i<n;i++)
dp.push_back(0);
dp[0]=a[0]; dp[1]=a[1];
int ans=0;
for(int i=2;i<n;i++)
{
dp[i]+=dp[i-2]+a[i];
ans=max(ans,dp[i]);
}
return ans;
}
};
您需要小心输入大小。 dp[0]=a[0]; dp[1]=a[1];
,假设输入的大小至少为2。
事实是否如此? 那就没问题了,否则程序就会像你描述的那样崩溃。
通常,对于这些Leetcode
问题,您需要处理所有的角落情况。 也许您的解决方案适用于一般情况,但是您也应该考虑到恼人的输入(空列表,包含一个元素的列表,等等。。。)