免费网站收录提交,网站开发语言格式化标记语言,同城可以做别人一样的门户网站吗,网站建设全包一条龙一、题目 给定一个数组 prices #xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的… 一、题目 给定一个数组 prices 它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润返回 0 。 示例 1
输入[7,1,5,3,6,4]
输出5
解释在第 2 天股票价格 1的时候买入在第 5 天股票价格 6的时候卖出最大利润 6-1 5 。注意利润不能是 7-1 6, 因为卖出价格需要大于买入价格同时你不能在买入前卖出股票。示例 2
输入prices [7,6,4,3,1]
输出0
解释在这种情况下, 没有交易完成, 所以最大利润为 0。二、思路解析 我们要明确需求就是先找到数组中的最小值跟最大值。
因此我们可以定义两个变量min 代表最小值直接定义为一个 Integer 的最大值即可保证每个数至少小于或等于它就可以替换掉它。
而 maxprofit 的定义同理。
接着我们开始遍历数组只要小于 min 的都赋值给 min、大于 mixprofit 的都赋值给它并做好条件判断。
最终的最大利润 maxprofit 也就等于 最大值减去最小值然后返回即可。 三、完整代码 class Solution {public int maxProfit(int[] prices) {int min Integer.MAX_VALUE;int maxprofit 0;for(int i 0;iprices.length;i){if(prices[i]min){min prices[i];}else if(prices[i]-minmaxprofit){maxprofit prices[i]-min;}}return maxprofit;}
}以上就是本篇博客的全部内容啦如有不足之处还请各位指出期待能和各位一起进步