LeetCode刷题Day2
LeetCode121. 买卖股票的最佳时机(简单)
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0
算法思想
动态规划思想
今天卖出的最大值=今天价格 - 之前买入可能遇到的最小价格
代码实现
int maxProfit(int* prices, int pricesSize){
int i;
int profit, min=prices[0], max=0;
for(i=1; i<pricesSize; i++){
profit = prices[i]-min;
if(profit>max)
max = profit;
if(prices[i]<min)
min = prices[i];
}
return max;
}
问题
总是不能正确完成动态规划的子问题划分,多练习
注意区分动态规划和一分为几个小问题区分
动态规划: f(n)可以由f(n-1)来求出,更像是一种递归
LeetCode121:买卖股票的动态规划解法
博客围绕LeetCode121买卖股票的最佳时机问题展开,给定股票每日价格数组,需计算一次买卖的最大利润。采用动态规划思想,即今天卖出的最大值为今天价格减去之前买入的最小价格。还提到在动态规划子问题划分上易出错,要多练习并区分与分小问题的差异。
1371

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



