力扣121. 买卖股票的最佳时机

Problem: 121. 买卖股票的最佳时机

文章目录

题目描述

思路

1.定义一个int数组max大小同prices;定义int变量curMax初始化为0;

2.从后往前遍历数组,若当前元素prices[i] > curMax 时,则使将其赋值给curMax再将curMax填写到max[i];

3.定义int变量result再从前往后遍历,若price[i] - max[i] > result,则更新result,最后返回result。

复杂度

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为数组prices的大小;

空间复杂度:

O ( n ) O(n) O(n)

Code

cpp 复制代码
class Solution {
public:
    /**
     * Suffix sum
     * @param prices
     * @return int
     */
    int maxProfit(vector<int> &prices) {
        int n = prices.size();
        vector<int> max(n);
        int curMax = 0;
        //Statistical suffix sum
        for (int i = n - 1; i >= 0; --i) {
            max[i] = curMax;
            if (prices[i] > curMax) {
                curMax = prices[i];
            }
        }
        int result = 0;
        for (int i = 0; i < n; ++i) {
            if (max[i] - prices[i] > result) {
                result = max[i] - prices[i];
            }
        }
        return result;
    }
};
相关推荐
希望有朝一日能如愿以偿28 分钟前
力扣题解(飞机座位分配概率)
算法·leetcode·职场和发展
Espresso Macchiato36 分钟前
Leetcode 3306. Count of Substrings Containing Every Vowel and K Consonants II
leetcode·滑动窗口·leetcode medium·leetcode 3306·leetcode周赛417
丶Darling.40 分钟前
代码随想录 | Day26 | 二叉树:二叉搜索树中的插入操作&&删除二叉搜索树中的节点&&修剪二叉搜索树
开发语言·数据结构·c++·笔记·学习·算法
JustCouvrir43 分钟前
代码随想录算法训练营Day15
算法
小小工匠1 小时前
加密与安全_HOTP一次性密码生成算法
算法·安全·htop·一次性密码
中文英文-我选中文1 小时前
排序算法的理解
算法·排序算法
我明天再来学Web渗透1 小时前
【hot100-java】【二叉树的层序遍历】
java·开发语言·数据库·sql·算法·排序算法
数据分析螺丝钉2 小时前
力扣第240题“搜索二维矩阵 II”
经验分享·python·算法·leetcode·面试
no_play_no_games2 小时前
「3.3」虫洞 Wormholes
数据结构·c++·算法·图论
￴ㅤ￴￴ㅤ9527超级帅2 小时前
LeetCode hot100---数组及矩阵专题(C++语言)
c++·leetcode·矩阵