###### tags: `LeetCode` `Dynamic Programming` `Easy` # LeetCode #121 [Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock) ### (Easy) 給定一個數組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。 你只能選擇 某一天 買入這隻股票,並選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所能獲取的最大利潤。 返回你可以從這筆交易中獲取的最大利潤。如果你不能獲取任何利潤,返回 0 。 --- 遍歷prices, 找到最小買入價, 並隨之更新最大獲利為prices[i]-minprice, 若在i點之前的最大獲利超越了i點的獲利(即便i點有了歷史最低買入價), 那最大獲利依然不變。 --- ``` class Solution { public: int maxProfit(vector<int>& prices) { int minprice=INT_MAX; int maxpro=0; for(int i=0;i<prices.size();i++){ minprice=min(minprice,prices[i]); maxpro=max(maxpro,prices[i]-minprice); } return maxpro; } }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up