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

【贪心算法】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.xdnf.cn/news/18736.html

相关文章:

  • 高教杯数学建模2021-C 生产企业原材料的订购与运输
  • 5G 三卡图传终端:应急救援管理的 “可视化指挥核心”
  • 【无标题】计数组合学7.21(有界部分大小的平面分拆)
  • 支持向量机(SVM)
  • Linux 内核 Workqueue 原理与实现及其在 KFD SVM功能的应用
  • Linux--seLinux的概述
  • 数据结构07(Java)-- (堆,大根堆,堆排序)
  • 常见的设计模式
  • 博士招生 | 南洋理工大学 PINE Lab 招收全奖博士
  • [新启航]新启航激光频率梳 “光量子透视”:2μm 精度破除遮挡,完成 130mm 深孔 3D 建模
  • 【国密证书】CentOS 7 安装 GmSSL 并生成国密证书
  • Docker移动安装目录的两种实现方案
  • 微硕WINSOK高性能MOS管WSF90N10,助力洗衣机能效与可靠性升级
  • Java:IO流——基础篇
  • Redis高级篇:在Nginx、Redis、Tomcat(JVM)各环节添加缓存以实现多级缓存
  • 一文丝滑使用Markdown:从写作、绘图到转换为Word与PPT
  • MongoDB /redis/mysql 界面化的数据查看页面App
  • M3-Agent:让AI拥有长期记忆的新尝试
  • UML 时序图中交互片段操作符的详细解析与 C/C++ 实现示例
  • React 高阶组件
  • 服务器初始化
  • APM 系列(一):Skywalking 与 Easyearch 集成
  • 如何在项目中集成XXL-JOB
  • 在线提取维基百科Wikipedia文章页面及离线批处理Wikipedia XML Dump文件
  • 通信中间件 Fast DDS(二) :详细介绍
  • 安卓Android低功耗蓝牙BLE连接异常报错133
  • 计算机实习经历包装/编写
  • 嵌入式系统学习Day22(进程)
  • STL——vector的使用(快速入门详细)
  • Ansible自动化运维介绍与安装