【leetcode】 Best Time to Buy and Sell Stock III
来源:互联网 发布:陈欣怡药检呈阳性知乎 编辑:程序博客网 时间:2024/06/01 20:33
问题描述:
Say you have an array for which the ith element is the price of a given stock on dayi.
Design an algorithm to find the maximum profit. You may complete at most two transactions.
Note:
You may not engage in multiple transactions at the same time
第一种方法:用一个二维数组记录i到i之后的差价。(负数直接填0),然后扫描二维数组,找到和的最大值。会超时。
第二种方法:先正序扫描求0~i天的最大利润,再倒序扫描求从i+1~n天的最大利润,放在两个数组内,最后求这两个数组第i项最大和。时间复杂度要低一些。
AC代码:
public int maxProfit(int[] prices) { if(prices==null||prices.length==0) return 0; int[] first = new int[prices.length]; int[] last = new int[prices.length]; //计算0~i的最大收益 int min = prices[0]; for(int i=1;i<prices.length;i++){ min=Math.min(min, prices[i]); first[i]=prices[i]-min; } int max=prices[prices.length-1]; //计算i~n的最大收益 for(int i=prices.length-2;i>=0;i--){ max = Math.max(max, prices[i]); last[i]=Math.max(max-prices[i], last[i+1]); } //计算最大值 int maxProfit = last[0]; for(int i=0;i<prices.length-1;i++){ maxProfit = Math.max(maxProfit, first[i]+last[i+1]); } return maxProfit; }
0 0
- LeetCode Best Time to Buy and Sell Stock III
- LeetCode Best Time to Buy and Sell Stock III
- [Leetcode] Best Time to Buy and Sell Stock III
- leetcode 16: Best Time to Buy and Sell Stock III
- LeetCode Best Time to Buy and Sell Stock III
- [LeetCode] Best Time to Buy and Sell Stock III
- leetcode 62: Best Time to Buy and Sell Stock III
- [LeetCode] Best Time to Buy and Sell Stock III
- 【leetcode】Best Time to Buy and Sell Stock III
- LeetCode - Best Time to Buy and Sell Stock III
- LeetCode之Best Time to Buy and Sell Stock III
- [LeetCode]Best Time to Buy and Sell Stock III
- LeetCode: Best Time to Buy and Sell Stock III
- [Leetcode]Best Time to Buy and Sell Stock III
- [leetcode]Best Time to Buy and Sell Stock III
- leetcode题目:Best Time to Buy and Sell Stock III
- [LeetCode] Best Time to Buy and Sell Stock III
- LeetCode-Best Time to Buy and Sell Stock III
- 调用系统拨号键拨打电话
- 如何使用Wireshark规则精准过滤网络包系列之 显示过滤器
- jQuery.extend 函数详解
- Hadoop2.6+HA+Zookeeper3.4.6+Hbase1.0.0安装
- spring有三种启动方式
- 【leetcode】 Best Time to Buy and Sell Stock III
- File,IO文件相关操作
- 线索化二叉树
- vmware配置虚拟机网络连接
- 使用Android Stuio自定义属性
- 想要1分好难
- leetcode-148 Sort List
- [Android]实现带显示密码按钮的EditText(无内存泄露)
- java中JVM加载类的时机