zoukankan      html  css  js  c++  java
  • LeetCode 121 买卖股票的最佳时机

    Leetcode 121 买卖股票的最佳时机

    给定一个数组nums,其中每个数字num表示第i天的股票价格。要求同一天内最多只能进行一次交易(买入/卖出)且只能买入/卖出各一次,求能够获得的最大利润。
    动态规划
    思路:

    • 第i天卖出能够获得的利润 = 第i天股票价格 - 前i天的最低价格(min_i)
    • 到第i天为止的最大利润 = 第i天的利润 和 前i-1天的最大利润中的最大值
    • dp[i]表示到第i天为止的最大利润,则dp[i] = max(nums[i]-min_i, dp[i-1])
    • 初始状态dp[0] = 0, dp[1] = 0
    public class Solution {
        public int maxProfit(int prices[]) {
            if(prices==null || prices.length==0) {
                return 0;
            }
            int min_i = prices[0];      //到第0天为止的最低价格
            int[] dp = new int[prices.length];
            for(int i=1; i<dp.length; i++) {
                min_i = Math.min(min_i, prices[i]);      //更新到第i天为止的最低价格
                dp[i] = Math.max(dp[i-1], prices[i]-min_i);
            }
            
            return dp[prices.length-1];
        }
    }
    
  • 相关阅读:
    flask
    admin站点管理
    DRF
    基础
    通过djangocrontab扩展来实现 定时任务
    配置asgi来达到能处理websocket
    用es实现模糊搜索
    迁移问题
    启动活动的最佳写法
    启动活动的最佳写法
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13509205.html
Copyright © 2011-2022 走看看