博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(greedy)Best Time to Buy and Sell Stock II
阅读量:5093 次
发布时间:2019-06-13

本文共 934 字,大约阅读时间需要 3 分钟。

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).

题目大意:

类似I,只不过现在允许进行多次交易,只需在上升曲线累加收益即可,即所谓的贪婪算法。

(贪婪算法与动态规划的区别:贪婪算法只需在每一步求出最大收益,即可在最后一步得到总的最大利润,而对于动态规划,每一步的最大收益可能受到前面某一步的影响,导致必须在最后一步综合前面的状态才能得出最大利润)

Java解法:

public class Solution {    public int maxProfit(int[] prices) {        if(prices == null || prices.length == 0)            return 0;        int profit = 0;        int temp = prices[0];        for(int i = 1; i
temp) //上升曲线每步累加收益 profit += prices[i] - temp; temp = prices[i]; } return profit; }}

 

转载于:https://www.cnblogs.com/axolotl/p/4609782.html

你可能感兴趣的文章
实验13-两个版本之一
查看>>
[Project Euler] Problem 21
查看>>
数据库粘合层--基于protobuffer
查看>>
tomcat 后台启动设置
查看>>
react-music React全家桶项目,精品之作!
查看>>
结对-结对编项目作业名称-开发环境搭建过程
查看>>
怎样在Dos里切换盘符
查看>>
异常来自 HRESULT:0x800A03EC
查看>>
jQuery中使用$.ajax提交表单
查看>>
软件工程课堂作业(二)续——升级完整版随机产生四则运算题目(C++)
查看>>
js正则表达式及代码
查看>>
淘宝网络框架tbnet源码分析
查看>>
Laravel自学第一课:laravel下载与安装
查看>>
大数据调度工具azkaban的任务调度执行操作
查看>>
TOMCAT:对页面进行压缩从而节省网站的带宽以及提升用户的访问速度
查看>>
NSTimer的使用
查看>>
开学测试代码
查看>>
vue路由传参
查看>>
20181122_任务
查看>>
emacs使用指南
查看>>