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

    Question:

    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 as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

    Analysis:

    题目描述:给出一个整数数组,第i个元素表示第i天得股票售价。 设计一个算法得到最大利润,与第一个版本不同的是,这次交易允许多次买卖,但是必须保证在买入股票之前要先卖出。

    思路:开始想是否要用到动态规划的思想,后来发现,这个题目是要将原来的数组划分成一个个的小波峰波谷,而每次波峰与波谷之间的差值都可以作为利润。

    Answer:

    public class Solution {
        public int maxProfit(int[] prices) {
            if(prices.length == 0 || prices.length == 1)
                    return 0;
            int profit = 0;
            for(int i=1; i<prices.length; i++) {
                    int diff = prices[i] - prices[i-1];
                    
                    if(diff > 0) {
                        profit += diff;
                    }
            }
            return profit;
        }
    }
  • 相关阅读:
    ovs tag
    从数据库分析OpenStack创建虚机流程
    Neutron中的二层网络服务架构
    Failed to bind port
    OpenStack网络参数segment
    OpenStack与SDN控制器的集成
    HDU 3709 Balanced Number
    HDU 5787 K-wolf Number
    HDU 5803 Zhu’s Math Problem
    CodeForces 258B Little Elephant and Elections
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/4821413.html
Copyright © 2011-2022 走看看