class Solution {
public:
int maxProfit(vector<int>& prices) {
int minn = prices[0];
int ans = 0;
for (int i = 0; i < prices.size(); i++) {
minn = min(minn, prices[i]);
ans = max(ans, prices[i] - minn);
}
return ans;
}
};
#include<bits/stdc++.h>
using namespace std;
class Solution{
public:
int promit(vector<int>& prices){
int minn=prices[0];
int ans=0;
for(int i=0;i<prices.size();i++){
minn=min(minn,prices[i]);
ans=max(ans,prices[i]-minn);
}
return ans;
}
};
int main()
{
Solution s;
int n;
cin>>n;
vector<int> p;
for(int i=0;i<n;i++)
{
cin>>p[i];
}
cout<<s.promit( p);
return 0;
}
代码中有两处问题:
以下是修改后的代码:
#include <iostream>
#include <vector> // 添加vector头文件
using namespace std;
class Solution {
public:
int promit(vector<int>& prices) {
int minn = prices[0];
int ans = 0;
for (int i = 0; i < prices.size(); i++) {
minn = min(minn, prices[i]);
ans = max(ans, prices[i] - minn);
}
return ans;
}
};
int main() {
Solution s;
int n;
cin >> n;
vector<int> p(n); // 为向量p分配n个元素的空间
for (int i = 0; i < n; i++) {
cin >> p[i];
}
cout << s.promit(p);
return 0;
}
修改后的代码已经可以正常运行,可以输入 n 和 p 数组的元素,并输出结果。注意在使用 vector<int> p(n); 时,我们为向量 p 分配了 n 个元素的空间,因此可以通过 p[i] 来访问每个元素。
我将成功的代码复制上去后报了一个错误。
class Solution {
public:
int promit(vector<int>& prices) {
int minn = prices[0];
int ans = 0;
for (int i = 0; i < prices.size(); i++) {
minn = min(minn, prices[i]);
ans = max(ans, prices[i] - minn);
}
return ans;
}
};
报了一个这个错误Line 19: Char 28: error: no member named 'maxProfit' in 'Solution' int ret = Solution().maxProfit(param_1); return ret; ~~~~~~~~~~ ^ 1 error generated.
根据报错信息看来,问题出在调用函数 maxProfit 上。实际上,在你的代码中,并没有定义 maxProfit 函数,而是定义了 promit 函数。因此,报错是因为在调用 maxProfit 时找不到对应的函数名。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int minn = prices[0];
int ans = 0;
for (int i = 0; i < prices.size(); i++) {
minn = min(minn, prices[i]);
ans = max(ans, prices[i] - minn);
}
return ans;
}
};
再接再厉,继续加油!
本章的内容就到这里了,觉得对你有帮助的话就支持一下博主把~