考察的知识点:贪心;
解答方法分析:
- 初始化最低买入价格为第一天价格 prices[0],最大利润为 0。
- 从第二天开始遍历价格列表 prices:如果当前价格 prices[i] 大于最低买入价格,计算当前价格与最低买入价格的差值,如果差值大于最大利润,更新最大利润。否则,更新最低买入价格为当前价格。
所用编程语言:C++;
完整编程代码:↓
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param prices int整型vector * @return int整型 */ int max_profit(vector<int>& prices) { int minPrice = prices[0]; int maxProfit = 0; for (int i = 1; i < prices.size(); i++) { if (prices[i] < minPrice) { minPrice = prices[i]; } else { int profit = prices[i] - minPrice; if (profit > maxProfit) { maxProfit = profit; } } } return maxProfit; } };