iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
Software Development

用leetcode系統化學習C語言系列 第 8

練習 C 語言追蹤最大值技巧

  • 分享至 

  • xImage
  •  

前幾篇練習了陣列遍歷、找最大值和累加總和,熟悉了基本的C語言操作。今天這題要進一步在單次遍歷中同時追蹤最小值與最大差值,從「單一判斷」過渡到「多條件計算」,銜接前面的基礎練習,也能訓練我在迴圈中同時管理多個變數的邏輯。

LeetCode 121. Best Time to Buy and Sell Stock 題目說明:
給定一個陣列 prices,代表每天的股票價格,只能買一次、賣一次,求能得到的最大利潤。如果無法獲利,回傳 0,範例如下。
輸入:
prices = [7,1,5,3,6,4]
輸出:
5
解釋:
在第 2 天買 (price = 1),第 5 天賣 (price = 6),利潤 = 6 - 1 = 5。

解題思路
用 minPrice 記錄目前遇到的最低股價;用 maxProfit 記錄目前能獲得的最大利潤。
遍歷陣列:如果當天股價比 minPrice 低,更新 minPrice;計算當天股價減 minPrice 的利潤,如果比 maxProfit 大,更新 maxProfit。遍歷結束後,maxProfit 即為最大利潤。
https://ithelp.ithome.com.tw/upload/images/20250922/201694899TRu5t9DCJ.png


上一篇
進階 C 語言陣列練習
系列文
用leetcode系統化學習C語言8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言