70-76-堆、贪心算法

LeetCode 热题 100


本文存储我刷题的笔记。


70. 中等-数组中的第K个最大元素

71. 中等-前K个高频元素

72. 困难-数据流中的中位数

贪心算法

73. 简单-买卖股票的最佳时机

我的思路

  • 思路:从左到右遍历每个元素,每次都更新最小值和最大值,并不断更新最大利润。
  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( 1 ) O(1) O(1)
  • 时间104ms(59.40%),内存91.48MB(53.42%)。
class Solution {
   
public:
    int maxProfit(vector<int>& prices) {
   
        // 排除特殊情况:只有一天
        int len = prices.size();
        if(len<=1){
   
            return 0;
        }

        // 遍历所有所有天数
        int p_max{
   prices[0]}, p_min{
   prices[0]}, profit{
   0};
        for(int i=1; i<len; i++){
   
            p_min = std::min(p_min, prices[i]); // 更新下限
            p_max = std::max(p_min, prices[i]); // 更新当前下限后的上限
            profit = std::max(profit, p_max-p_min); // 更新最大利润
        }
        return profit;
    }
};

官方思路一:一次遍历

  • 思路:保存以往的最低点,计算今天能获利多少,遍历一次即可完成。

  • 时间复杂度: O ( n ) O(n) O(n)

  • 空间复杂度: O ( 1 ) O(1) O(1)

  • 时间84ms(97.06%),内存91.39MB(77.65%)。

class Solution {
   
public:
    int maxProfit(vector<int>& prices) {
   
        int minprice = prices[0]; // 以往的最低点
        int maxprofit = 0;        // 最大利润
        // 遍历每一个元素
        for (int price: prices) {
   
            maxprofit = max(maxprofit, price - minprice); // 更新最大利润
            minprice = min(price, minprice);              // 更新以往最低点
        }
        return maxprofit;
    }
};

74. 中等-跳跃游戏

75. 中等-跳跃游戏II

76. 中等-划分字母区间

我的思路

  • 思路

  • 时间??ms(??%),内存??MB(??%)。


官方思路:

  • 思路

  • 时间??ms(??%),内存??MB(??%)。


相关推荐

  1. 算法70. 爬楼梯

    2023-12-06 15:28:03       27 阅读
  2. 从零学算法76

    2023-12-06 15:28:03       35 阅读
  3. MySQL商城数据表(70-79

    2023-12-06 15:28:03       29 阅读
  4. 502. IPO(贪心算法+优先队列/

    2023-12-06 15:28:03       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 15:28:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 15:28:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 15:28:03       82 阅读
  4. Python语言-面向对象

    2023-12-06 15:28:03       91 阅读

热门阅读

  1. Diary12-Word表格

    2023-12-06 15:28:03       59 阅读
  2. mysql 安装

    2023-12-06 15:28:03       57 阅读
  3. 二叉树的实现(纯C语言版)

    2023-12-06 15:28:03       50 阅读
  4. 数据结构:链表应用:第6关:链表的分解

    2023-12-06 15:28:03       59 阅读
  5. [数据结构]C++递归算法作业

    2023-12-06 15:28:03       55 阅读
  6. 前端如何中断请求 ( axios、原生 ajax、fetch)

    2023-12-06 15:28:03       59 阅读
  7. 微信小程序显示二维码?

    2023-12-06 15:28:03       58 阅读
  8. pytorch 多卡并行训练

    2023-12-06 15:28:03       60 阅读
  9. Numpy实践_排序和搜索和计数

    2023-12-06 15:28:03       47 阅读