【发布时间】:2021-12-31 06:50:38
【问题描述】:
class Solution {
public:
int numSquares(int n) {
int dp[n+1];
for(int i=0;i<=n;i++) dp[i]=0; //initializing all the elements to zero
for(int i=1;i<=n;i++){
int t = INT_MAX;
for(int j=1;j<=(int)sqrt(i);j++){
t = min(t,dp[i-j*j]);
}
dp[i] = t+1;
}
return dp[n];
}
};
上述方法工作得很好,但是当我尝试像这样初始化数组时
int dp[n] = {0} //variable sized array cannot be initialized
我收到了无法初始化可变大小数组的错误。 有什么原因要初始化这个数组而不是使用 for 循环,请解释我为什么会收到这个错误?
【问题讨论】: