✨博主:命运之光
🦄专栏:算法修炼之练气篇(C\C++版)
🍓专栏:算法修炼之筑基篇(C\C++版)
🐳专栏:算法修炼之练气篇(Python版)
✨博主的其他文章:点击进入博主的主页
前言:欢迎来到这个LeetCode每日算法题专栏!
🌊无论你是编程新手还是有一定经验的开发者,掌握算法和数据结构都是成功的关键。在这个专栏里,我将每天为你分享一道算法题,并提供简单易懂的解析和讲解。
☀️通过每日挑战,你将逐渐培养解决问题的思维方式,掌握重要的编程技巧。无论是面试准备还是日常编码,这些知识都将对你大有裨益。
🎉让我们一起开始这段充满乐趣和成长的学习之旅吧!希望你能从中受益,开拓编程的新视野!
目录
LeetCode每日一题Day1——买卖股票的最佳时机
正确代码
错误总结
1.调试代码出现错误
错误原因:
2.第一次在leetcode的上写题对规则不是很了解。
错误原因:
修改后的最终代码为:
✨结语
LeetCode每日一题Day1——买卖股票的最佳时机
正确代码
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;}
};
错误总结
1.调试代码出现错误
#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;
}
错误原因:
代码中有两处问题:
- 在使用 vector<int> p; 创建向量 p 后,没有为其分配内存空间,所以无法直接通过 cin >> p[i]; 来读取元素。
- 没有包含 #include <vector> 头文件,导致编译器无法识别 vector 类型。
以下是修改后的代码:
#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] 来访问每个元素。
2.第一次在leetcode的上写题对规则不是很了解。
我将成功的代码复制上去后报了一个错误。
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;}
};
✨结语
再接再厉,继续加油!
本章的内容就到这里了,觉得对你有帮助的话就支持一下博主把~
🌌点击下方个人名片,交流会更方便哦~
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓