当前位置: 首页 > news >正文

【贪心算法】day3

📝前言说明:

  • 本专栏主要记录本人的贪心算法学习以及LeetCode刷题记录,按专题划分
  • 每题主要记录:(1)本人解法 + 本人屎山代码;(2)优质解法 + 优质代码;(3)精益求精,更好的解法和独特的思想(如果有的话);(4)贪心策略正确性的 “证明”
  • 文章中的理解仅为个人理解。如有错误,感谢纠错

🎬个人简介:努力学习ing
📋本专栏:C++刷题专栏
📋其他专栏:C语言入门基础,python入门基础,C++学习笔记,Linux
🎀CSDN主页 愚润泽

你可以点击下方链接,进行其他贪心算法题目的学习

点击链接开始学习
贪心day1贪心day2
贪心day3贪心day4
贪心day5贪心day6
贪心day7贪心day8
贪心day9贪心day10

也可以点击下面连接,学习其他算法

点击链接开始学习
优选专题动态规划
递归、搜索与回溯贪心算法

题目

  • 334. 递增的三元子序列
    • 优质解
  • 674. 最长连续递增序列
    • 个人解
  • 121. 买卖股票的最佳时机
    • 个人解


334. 递增的三元子序列

题目链接:https://leetcode.cn/problems/increasing-triplet-subsequence/description/
在这里插入图片描述

优质解

思路:

  • 题:300. 最长递增子序列 的简化版
  • 我们只需确保找得到三个递增的数就行
    • 遇到更小的值的时候,更新(更小化)此时序列的最小值和次小值

代码:

class Solution {
public:bool increasingTriplet(vector<int>& nums) {int first = INT_MAX, second = INT_MAX;for(auto num: nums){if(num <= first) // 找最小值first = num;else if(num <= second) // 次小值second = num;else // 代表这个数比前两个数都大, 则代表找到第三个数return true;}return false;}
};

时间复杂度:O(n)O(n)O(n)
空间复杂度:O(1)O(1)O(1)


674. 最长连续递增序列

题目链接:https://leetcode.cn/problems/longest-continuous-increasing-subsequence/description/
在这里插入图片描述

个人解

屎山代码:

class Solution {
public:int findLengthOfLCIS(vector<int>& nums) {int ans = 1, len = 1;for(int i = 1; i < nums.size(); i++) {if(nums[i] > nums[i - 1])len++;elselen = 1;ans = max(ans, len);}return ans;}
};

时间复杂度:O(n)O(n)O(n)
空间复杂度:O(1)O(1)O(1)


121. 买卖股票的最佳时机

题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/
在这里插入图片描述

个人解

思路:

  • 只能交易一次
  • 找到差值最大的一个二元递增子序列

屎山代码:

class Solution {
public:int maxProfit(vector<int>& prices) {int ans = 0; // 记录答案for(int i = 0, PreMin = INT_MAX; i < prices.size(); i++){PreMin = min(PreMin, prices[i]); // 记录目前出现的最小值(即:选最优的左端)ans = max(ans, prices[i] - PreMin); // 更新答案(以该位置为结尾,计算二元数组的长度)}return ans;}
};

时间复杂度:O(n)O(n)O(n)
空间复杂度:O(1)O(1)O(1)


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

http://www.dtcms.com/a/352107.html

相关文章:

  • win11在安装com0com软件后,在设备管理器中虚拟串口黄色感叹号得解决方法
  • 什么是Webpack的热更新(Hot Module Replacement)?原理是什么?
  • 2 梯度下降算法
  • 面试 总结(1)
  • 博士招生 | 南洋理工大学 PINE Lab 招收全奖博士
  • 一文看懂@Bean注解的原理
  • Markdown 编辑器 语法
  • 18、移动应用系统分析与设计
  • 字帖生成器怎么用?电脑手机双端操作指南
  • halcon的默认图像坐标系是怎么样的?
  • Agent实战教程:LangGraph关于智能体的架构模式与核心概念
  • MySQL表的管理
  • Matplotlib渲染性能提升10倍:底层原理与实战技巧
  • 具身智能常用【数据集】汇总篇
  • 三菱FX5U PLC访问字变量的某一位
  • 信长之野望 新生 威力加强版 送修改器 免安装中文版
  • 基于 MediaPipe + Three.js 的实时姿态可视化前端
  • clip等llm模型预研
  • vue3和react的异同点
  • nacos基础
  • 培训积分制:量化培训效果
  • Java多态深度解析:从原理到实战应用
  • 50个Qt 库
  • 计算机网络的发展演进历程
  • ubuntu20.04环境配置
  • Android之流式显示内容
  • IjkPlayer 播放 MP4 视频时快进导致进度回退的问题
  • 【LeetCode】动态规划——542.01 矩阵
  • GitHub Copilot Pro + 模型深度解析:Java 开发者场景适配指南
  • CSS 常见选择器