北京网站开发人员,企业网站建设管理及推广,90设计网站会员全站通与电商模板的区别,做站长建不好网站给定一个数组#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易#xff08;即买入和卖出一支股票#xff09;#xff0c;设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
示例 1:
输入: [7,1,5,3,6,…给定一个数组它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易即买入和卖出一支股票设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
示例 1:
输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天股票价格 1的时候买入在第 5 天股票价格 6的时候卖出最大利润 6-1 5 。 注意利润不能是 7-1 6, 因为卖出价格需要大于买入价格。 示例 2:
输入: [7,6,4,3,1] 输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 思路对于第i个时间必须卖出的答案而言最优解为在之前最便宜时买入。 minn记录之前最小值。ans记录所有卖出时间的最优解。 class Solution {public int maxProfit(int[] prices) {int lenprices.length;if(len1){return 0;}int ans0;//最终答案int minnprices[0];//之前的最小值int i;for(i1;ilen;i){minnprices[i-1]minn?prices[i-1]:minn;ansprices[i]-minnans?prices[i]-minn:ans;}return ans;}
}