zoukankan      html  css  js  c++  java
  • LeetCode Best Time to Buy and Sell Stock III

    Say you have an array for which the ith element is the price of a given stock on day i.

    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 (ie, you must sell the stock before you buy again).

     1 public class Solution {
     2     public int maxProfit(int[] prices) {
     3         if (prices.length<=1) {
     4             return 0;
     5         }
     6 
     7         int[] left = new int[prices.length];
     8         int[] right = new int[prices.length];
     9         int min = prices[0];
    10         for (int i = 1; i < prices.length; i++) {
    11             left[i] = left[i - 1] > prices[i] - min ? left[i - 1] : prices[i] - min;
    12             min = min < prices[i] ? min : prices[i];
    13         }
    14 
    15         int max = prices[prices.length - 1];
    16         for (int i = prices.length - 2; i >= 0; i--) {
    17             right[i] = right[i + 1] > max - prices[i] ? right[i + 1] : max - prices[i];
    18             max = max > prices[i] ? max : prices[i];
    19         }
    20         int sum = Integer.MIN_VALUE;
    21         for (int i = 0; i < left.length; i++) {
    22             sum = sum > left[i] + right[i] ? sum : left[i] + right[i];
    23         }
    24         return sum;
    25     }
    26 }
  • 相关阅读:
    深度学习中的基本概念——梯度相关
    模型训练中涉及到的技巧
    ubuntu swapfile
    ubuntu install opencv
    Jetson TX1 安装ROS操作系统
    Redis介绍以及安装(Linux)
    C# url信息获取
    贝茨视觉训练法
    PHP设计模式浅析
    MySQL相关知识
  • 原文地址:https://www.cnblogs.com/birdhack/p/4156599.html
Copyright © 2011-2022 走看看