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

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

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

羞愧啊,根本不用那么复杂!直接统计每段上升序列的最大差就能够了

class Solution {public:    int maxProfit(vector
&prices) { if( prices.size() < 2) return 0; int max_profit = 0; for( int i = 1; i < prices.size(); ++i){ if( prices[i] - prices[i-1] > 0) max_profit += prices[i] - prices[i-1]; } return max_profit; }};

(之前的做法,想太多了)

和best time to buy and sell stock的差别是同意多次买入和卖出,dp[i]保存当前能获得的最低股价

那么max_profit就须要累加prices[i]-dp[i],这就会出现反复加的情况,比方prices 1 2 4相应dp 1 1 1,会反复加,所以每次算dp[i]要修正,取最大的prices[j]-dp[j],其余的prices[j]=dp[j]

class Solution {public:    int maxProfit(vector
&prices) { if( prices.size() < 2) return 0; vector< int> dp( prices.size(), INT_MAX); dp[0] = prices[0]; for( int i = 1; i < prices.size(); ++i){ int mini = prices[i]; for( int j = i - 1; j >= 0; --j){ if(prices[i] - dp[j] > prices[j] - dp[j]){//保证prices[i]-dp[i]最大 mini = dp[j]; dp[j] = prices[j]; if( prices[j] == dp[j]) break; } else{ break; } } dp[i] = mini; } int max_profit = 0; for( int i = 0; i < prices.size(); ++i){ max_profit = prices[i] - dp[i] > 0 ? max_profit + prices[i] - dp[i] : max_profit; } return max_profit; }};

转载地址:http://oinno.baihongyu.com/

你可能感兴趣的文章
对淘宝一些规则的一些研究分享
查看>>
WAV格式
查看>>
信号量(一)
查看>>
开发前奏曲之添加Android SDK平台工具
查看>>
poj 2263&& zoj1952 floyd
查看>>
Django跨站伪造请求保护措施设置方法[转]
查看>>
关掉firefox(火狐)和palemoon地址栏自动加www.前缀功能【转】
查看>>
hdu 4300 Clairewd’s message(KMP)
查看>>
burp suite 使用教程详解(外文翻译转)
查看>>
Python循环
查看>>
Flume研究心得
查看>>
概要文件的创建
查看>>
虚拟域名设置步骤
查看>>
Oracle的substr函数简单用法
查看>>
knockout.js模板绑定之利用Underscore.js模板引擎示例
查看>>
马婕 2014MBA专硕考试报刊选读 5 朱令案悬而未决引起全社会的关注(转)
查看>>
【iOS开发必备指南合集】申请企业级IDP、真机调试、游戏接入GameCenter 指南(实现仿官方的成就提示)、游戏接入OpenFeint指南;...
查看>>
SVN OPS发布总结
查看>>
二维数组旋转45度
查看>>
三种客户端访问wcf服务端的方法 C#
查看>>