Leetcode:best_time_to_buy_and_sell_stock_II题解
2014-11-03 21:09
423 查看
一、题目
如果你有一个数组,它的第i个元素是一个股票在一天的价格。
设计一个算法,找出最大的利润。
二、分析
假设当前值高于买入值,那么就卖出,同一时候买入今天的股票,并获利。假设当前值低于买入值,那么就放弃之前的股票,同一时候买入今天的股票,以待升值,此时也不亏损。
举例:
2 9 6 3 6 1
第1天,买入2;
第2天,9>2,卖出,获利7,并买入9;
第3天,6<9,放弃9,买入6;
第4天,3<6,放弃6,买入3;
第5天,6>3,卖出,获利3,并买入6;
第6天,1<6,放弃6,买入1,结束。
总获利:7+3= 10。
须要注意的是在获取数组的长度时,在vector<int>不能使用length,而是size().
如果你有一个数组,它的第i个元素是一个股票在一天的价格。
设计一个算法,找出最大的利润。
二、分析
假设当前值高于买入值,那么就卖出,同一时候买入今天的股票,并获利。假设当前值低于买入值,那么就放弃之前的股票,同一时候买入今天的股票,以待升值,此时也不亏损。
举例:
2 9 6 3 6 1
第1天,买入2;
第2天,9>2,卖出,获利7,并买入9;
第3天,6<9,放弃9,买入6;
第4天,3<6,放弃6,买入3;
第5天,6>3,卖出,获利3,并买入6;
第6天,1<6,放弃6,买入1,结束。
总获利:7+3= 10。
须要注意的是在获取数组的长度时,在vector<int>不能使用length,而是size().
class Solution { public: int maxProfit(vector<int> &prices) { int length = prices.size(); if(length==0) return 0; int profit = 0; int flag,difference; for(flag=1;flag<length;flag++){ difference = prices[flag]-prices[flag-1]; if(difference>0) profit+=difference; } return profit; } };
相关文章推荐
- Leetcode:best_time_to_buy_and_sell_stock_II题解
- LeetCode题解:Best Time to Buy and Sell Stock II
- [LeetCode]题解(python):122-Best Time to Buy and Sell Stock II
- 【LeetCode】【Python题解】Best Time to Buy and Sell Stock II
- LeetCode题解-Best Time to Buy and Sell Stock II
- [leetcode刷题系列]Best Time to Buy and Sell Stock II
- leetcode--Best Time to Buy and Sell Stock II
- [Leetcode 51] 122 Best Time to Buy and Sell Stock II
- leetcode 61: Best Time to Buy and Sell Stock II
- [LeetCode] Best Time to Buy and Sell Stock II Solution
- [leetcode]Best Time to Buy and Sell Stock II
- LeetCode_Best Time to Buy and Sell Stock II
- 【leetcode】Best Time to Buy and Sell Stock II
- LeetCode : Best Time to Buy and Sell Stock II
- [leetcode]Best Time to Buy and Sell Stock II
- [LeetCode]Best Time to Buy and Sell Stock II
- Leetcode: Best Time to Buy and Sell Stock II
- Leetcode: Best Time to Buy and Sell Stock I II III
- [Leetcode] Best Time to Buy and Sell Stock II
- LeetCode Best Time to Buy and Sell Stock II