一、題目
假設你有一個數組,它的第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
class Solution { public: int maxProfit(vector&prices) { int length = prices.size(); if(length==0) return 0; int profit = 0; int flag,difference; for(flag=1;flag 0) profit+=difference; } return profit; } };