C++ 错误:可变大小的对象可能未初始化编译时有时会出现此问题如何修复? 类解决方案{ 公众: int最大利润(矢量和价格){ //这里如何修复编译错误,即n是可变大小,不能用于 //初始化以及为什么在某些问题上也会发生这种情况;。 int n=prices.size(); 如果(n=0;i--){ 如果(价格[i]>maxi){ maxi=价格[i]; 右[i]=右[i+1]; } 否则{ 右[i]=max(右[i-1],最大价格[i]); } } int res=0; 对于(int i=0;i
From(8):C++ 错误:可变大小的对象可能未初始化编译时有时会出现此问题如何修复? 类解决方案{ 公众: int最大利润(矢量和价格){ //这里如何修复编译错误,即n是可变大小,不能用于 //初始化以及为什么在某些问题上也会发生这种情况;。 int n=prices.size(); 如果(n=0;i--){ 如果(价格[i]>maxi){ maxi=价格[i]; 右[i]=右[i+1]; } 否则{ 右[i]=max(右[i-1],最大价格[i]); } } int res=0; 对于(int i=0;i,c++,C++,From(8):noptr声明符[constexpr(可选)]attr(可选)(8)数组大小是一个常量表达式 差不多大小 整型常量表达式(直到C++14) std::size_t类型的转换常量表达式(自C++14以来), 其计算值大于零 不能对此使用运行时变量,但prices.size()是一个运行时变量 使用编译时常数大小、 STD::vector < /C>或动态内存分配。< /P>使用STD::向量用于可变大小的数组。C++没有真正的,比如你尝试为左> /COD>和右< /代码>。这能回答
noptr声明符[constexpr(可选)]attr(可选)(8)
数组大小是一个常量表达式
差不多大小
整型常量表达式(直到C++14)
std::size_t类型的转换常量表达式(自C++14以来),
其计算值大于零
不能对此使用运行时变量,但prices.size()
是一个运行时变量
使用编译时常数大小、<代码> STD::vector < /C>或动态内存分配。< /P>使用STD::向量用于可变大小的数组。C++没有真正的,比如你尝试为<代码>左> /COD>和<代码>右< /代码>。这能回答你的问题吗?
class Solution {
public:
int maxProfit(vector<int>& prices) {
//Here how to fix the compilation error which says n is variable size and cant be used for
//initialisation and why does this happen that too in only some Problems;.
int n=prices.size();
if(n<=1)
return 0;
int left[n]={0};
int mini = prices[0];
for(int i=1;i<n;i++){
if(prices[i]>mini){
left[i] = max(left[i-1], prices[i]-mini);
}
else{
mini=prices[i];
left[i]=left[i-1];
}
}
int right[n]={0};
int maxi=prices[n-1];
for(int i=n-2;i>=0;i--){
if(prices[i]>maxi){
maxi=prices[i];
right[i]=right[i+1];
}
else{
right[i] = max(right[i-1], maxi-price[i]);
}
}
int res=0;
for(int i=0;i<n;i++){
res=max(res, left[i]+right[i]);
}
return res;
}
};