这个题目遇到两次:联想面试手写代码+码隆科技在线笔试。
LeetCode原题:
题号:121. Best Time to Buy and Sell Stock
链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/
题目描述:
给定一个整形数组,其中的第i个元素代表股票第i天的价格。在一开始,你手里有足够的钱,但没有股票。你仅有一次买股票和一次卖股票的机会(每次只能买/卖1股),或者不买不卖。输出你可能的最大盈利值。尽量降低程序的时间复杂度。
样例1:
[7, 1, 5, 3, 6, 4],在价格为1的时候买入,在价格为6的时候卖出,可以得到最大盈利值为5。(5 = 6 - 1)
样例2:
[7, 6, 5, 4, 3, 2],选择不买不卖,最大盈利值为0。
思路分析:
(1)思路1:
重点:题中给明数据是股票数据,所以买入的时间一定是先于卖出的时间。
我们在遍历数组第i个数arr[i]的时候,我们先找出这个数之前的最小数值minNum,并记录最小数值在数组中的位置index

本文探讨了如何解决LeetCode上的121. Best Time to Buy and Sell Stock问题,通过两种策略——直接搜索最小值和动态规划——来找到股票交易的最大盈利值,并提供了相应的Python代码实现。
最低0.47元/天 解锁文章
802

被折叠的 条评论
为什么被折叠?



