兰州专业做网站的公司哪家好,常州网站建设公司效果,网站挂马个人问题还是服务商,做律师网站推广优化哪家好题目#xff1a;
给你一个整数数组 prices #xff0c;其中 prices[i] 表示某支股票第 i 天的价格。
在每一天#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买#xff0c;然后在 同一天 出售。
返回 你能获得的 最大…题目
给你一个整数数组 prices 其中 prices[i] 表示某支股票第 i 天的价格。
在每一天你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买然后在 同一天 出售。
返回 你能获得的 最大 利润 。 初始化 如果数组长度小于等于1直接返回0无法获利hold -prices第一天买入股票利润为负notHold 0第一天不买股票利润为0遍历每一天从第二天开始 更新 hold[i]hold[i] Math.max(hold[i - 1], notHold[i - 1] - prices[i]) 意味着今天持有股票的最大利润可能来自 昨天就持有股票hold[i - 1]昨天不持有今天买入notHold[i - 1] - prices[i]更新 notHold[i]notHold[i] Math.max(notHold[i - 1], hold[i - 1] prices[i]) 意味着今天不持有股票的最大利润可能来自 昨天就不持有股票notHold[i - 1]昨天持有今天卖出hold[i - 1] prices[i] public class no_122 {public static void main(String[] args) {int[] price {1, 2, 3, 4, 5};System.out.println(maxProfit(price));}public static int maxProfit(int[] prices) {int n prices.length;if (n 1) return 0;int[] hold new int[n];int[] notHold new int[n];hold[0] -prices[0];notHold[0] 0;for (int i 1; i n; i) {// 今天持有股票的最大利润 max昨天持有昨天不持有今天买入hold[i] Math.max(hold[i - 1], notHold[i - 1] - prices[i]);// 今天不持有股票的最大利润 max(昨天就不持有, 昨天持有今天卖出)notHold[i] Math.max(notHold[i - 1], hold[i - 1] prices[i]);}return notHold[n - 1];}
}