给定一个数组 prices,其中 prices[i] 表示某支股票第 i 天的价格,设计一个算法来获取最大利润。你只能选择某一天买入,并在之后的某一天卖出,且最多只能完成一笔交易。请说明你的思路和实现。
考察说明
考察动态规划或一次遍历求最大差值的算法能力与边界处理
回答思路
- 能明确问题转化为求最大正差值(后值减前值)
- 能提出遍历中维护历史最低价并更新最大利润的方法
- 能正确处理买入必须在卖出之前的要求
- 能正确分析时间复杂度为 O(n)、空间复杂度为 O(1)
- 能讨论边界情况如数组长度小于2时利润为0
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。