C++實現(xiàn)LeetCode(122.買股票的最佳時間之二)
[LeetCode] 122.Best Time to Buy and Sell Stock II 買股票的最佳時間之二
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).
這道跟之前那道Best Time to Buy and Sell Stock 買賣股票的最佳時間很類似,但都比較容易解答。這道題由于可以無限次買入和賣出。我們都知道炒股想掙錢當然是低價買入高價拋出,那么這里我們只需要從第二天開始,如果當前價格比之前價格高,則把差值加入利潤中,因為我們可以昨天買入,今日賣出,若明日價更高的話,還可以今日買入,明日再拋出。以此類推,遍歷完整個數(shù)組后即可求得最大利潤。代碼如下:
C++ 解法:
class Solution { public: int maxProfit(vector<int>& prices) { int res = 0, n = prices.size(); for (int i = 0; i < n - 1; ++i) { if (prices[i] < prices[i + 1]) { res += prices[i + 1] - prices[i]; } } return res; } };
Java 解法:
public class Solution { public int maxProfit(int[] prices) { int res = 0; for (int i = 0; i < prices.length - 1; ++i) { if (prices[i] < prices[i + 1]) { res += prices[i + 1] - prices[i]; } } return res; } }
類似題目:
Best Time to Buy and Sell Stock with Cooldown
Best Time to Buy and Sell Stock IV
Best Time to Buy and Sell Stock III
Best Time to Buy and Sell Stock
到此這篇關于C++實現(xiàn)LeetCode(122.買股票的最佳時間之二)的文章就介紹到這了,更多相關C++實現(xiàn)買股票的最佳時間之二內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C語言中網絡地址與二進制數(shù)之間轉換的函數(shù)小結
這篇文章主要介紹了C語言中網絡地址與二進制數(shù)之間轉換的函數(shù)小結,是C語言入門學習中的基礎知識,需要的朋友可以參考下2015-09-09對比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法
這篇文章主要介紹了對比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法,二者都是用于復制內存內容,注意區(qū)別,需要的朋友可以參考下2015-08-08