c++贪心

本篇文章,我将同大家一起学习c++的贪心!!!

目录

第一题

题目链接

题目解析

代码原理

代码编写

第二题

题目链接

题目解析

代码原理

代码编写

第三题

题目链接

题目解析

代码原理

代码编写

第四题

题目链接

题目解析

代码原理

代码编写

第五题

题目链接

题目解析

代码原理

代码编写

思路拓展

第六题

题目链接

题目解析

代码原理

代码编写


 

第一题

题目链接

300. 最长递增子序列 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int lengthOfLIS(vector<int>& nums) {

        int n = nums.size();

        vector<int> ret;

        ret.push_back(nums[0]);

        for(int i = 1; i < n; i++)

        {

            if(ret.back() < nums[i]) ret.push_back(nums[i]);

            else

            {

                int left = 0, right = ret.size() - 1;

                while(left < right)

                {

                    int mid = (left + right) >> 1;

                    if(ret[mid] < nums[i]) left = mid + 1;

                    else right = mid;

                }

                ret[left] = nums[i];

            }

        }

        return ret.size();

    }

};

第二题

题目链接

334. 递增的三元子序列 - 力扣(LeetCode)

题目解析

解释:三元子序列:条件:1.i - 1  < i < i + 1   2.nums[i - 1] < nums[i] < nums[i + 1]

代码原理

代码编写

class Solution {

public:

    bool increasingTriplet(vector<int>& nums) {

        int n = nums.size();

        int a = nums[0], b = INT_MAX;

        for(int i = 1; i < n; i++)

        {

            if(nums[i] > b) return true;

            else if( nums[i] > a) b = nums[i];

            else a = nums[i];

        }

        return false;

    }

};

第三题

题目链接

674. 最长连续递增序列 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int findLengthOfLCIS(vector<int>& nums) {

        int n = nums.size(), ret = 0;

        for(int i = 0; i < n;)

        {

            int j = i + 1;

            while(j < n && nums[j] > nums[j - 1]) j++;

            ret = max(ret, j - i);

            i = j;

        }

        return ret;

    }

};

第四题

题目链接

121. 买卖股票的最佳时机 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int maxProfit(vector<int>& prices) {

        int n = prices.size(), ret = 0;

        int min_prices = INT_MAX, max_prices = 0;

        for(int i = 0; i < n; i++)

        {

                min_prices = min(min_prices, prices[i]);

                max_prices = max(max_prices, prices[i] - min_prices);

        }

        return max_prices;

    }

};

第五题

题目链接

122. 买卖股票的最佳时机 II - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int maxProfit(vector<int>& prices) {

        int ret = 0;

        for(int i = 0; i < prices.size(); i++)

        {

            if(i + 1 < prices.size() && prices[i] < prices[i + 1]) ret += prices[i + 1] - prices[i];

        }

        return ret;

    }

};

思路拓展

第一种思路:找到上升段,然后末减初

第二种思路:找到每一上升小段,就进行一次末减初,然后移动右指针,持续计算,求出最大结果

代码

  int n = prices.size();int ret = 0;// for(int left = 0; left < n; left++)// {//     int right = left;//     while(right + 1 < n && prices[right + 1] > prices[right])//     {//         right++;//     }//     ret += prices[right] - prices[left];//     left = right; // }

第六题

题目链接

1005. K 次取反后最大化的数组和 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int largestSumAfterKNegations(vector<int>& nums, int k) {

        int n = nums.size(), m = 0, min_nums = INT_MAX,ret = 0;

        for(int i = 0; i < n; i++)

        {

            if(nums[i] < 0)

            m++;

            min_nums = min(min_nums, abs(nums[i]));

        }

        if(m > k)

        {

            sort(nums.begin(),nums.end());

            for(int i = 0; i < k; i++)

            {

                ret += -nums[i];

            }

            for(int i = k; i < n; i++)

            {

                ret += nums[i];

            }

        }

        else

        {

            for(auto cur: nums)

            {

                ret += abs(cur);

            }

            if((k - m) % 2)

               ret -= min_nums * 2;

        }

            return ret;

    }

};

注意:这里的最小值一定要记得加绝对值。

本篇文章的内容就先到这里,最后也祝大家除夕快乐,春节快乐!!! 

记得一键三连哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/69358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

活动回顾和预告|微软开发者社区 Code Without Barriers 上海站首场活动成功举办!

Code Without Barriers 上海活动回顾 Code Without Barriers&#xff1a;AI & DATA 深入探索人工智能与数据如何变革行业 2025年1月16日&#xff0c;微软开发者社区 Code Without Barriers &#xff08;CWB&#xff09;携手 She Rewires 她原力在大中华区的首场活动“AI &…

嵌入式C语言:结构体的多态性之结构体中的void*万能指针

目录 一、void*指针在结构体中的应用 二、实现方式 2.1. 定义通用结构体 2.2. 定义具体结构体 2.3. 初始化和使用 三、应用场景 3.1. 内存管理函数 3.2. 泛型数据结构&#xff08;链表&#xff09; 3.3. 回调函数和函数指针 3.4. 跨语言调用或API接口&#xff08;模拟…

NoteGen:记录、写作与AI融合的跨端笔记应用

在信息爆炸的时代,如何高效地捕捉灵感、整理知识并进行创作成为了许多人关注的问题。为此,我们开发了 NoteGen,一款专注于记录和写作的跨端 AI 笔记应用。它基于 Tauri 开发,利用其强大的跨平台能力支持 Mac、Windows 和 Linux 系统,并计划未来扩展到 iOS 和 Android 平台…

BUUCTF 蜘蛛侠呀 1

BUUCTF:https://buuoj.cn/challenges 文章目录 题目描述&#xff1a;密文&#xff1a;解题思路&#xff1a;flag&#xff1a; 相关阅读 CTF Wiki Hello CTF NewStar CTF buuctf-蜘蛛侠呀 BUUCTF&#xff1a;蜘蛛侠呀 MISC&#xff08;时间隐写&#xff09;蜘蛛侠呀 题目描述&am…

Web3 的核心理念:去中心化如何重塑互联网

Web3 是新一代互联网的构想&#xff0c;它的核心理念是去中心化&#xff0c;旨在打破传统互联网由大型平台主导的数据垄断&#xff0c;赋予用户更多的控制权和隐私保护。通过区块链技术和去中心化应用&#xff08;DApps&#xff09;&#xff0c;Web3 正在重塑互联网的运作方式。…

TikTok 推出了一款 IDE,用于快速构建 AI 应用

字节跳动(TikTok 的母公司)刚刚推出了一款名为 Trae 的新集成开发环境(IDE)。 Trae 基于 Visual Studio Code(VS Code)构建,继承了这个熟悉的平台,并加入了 AI 工具,帮助开发者更快、更轻松地构建应用——有时甚至无需编写任何代码。 如果你之前使用过 Cursor AI,T…

C++封装红黑树实现mymap和myset和模拟实现详解

文章目录 map和set的封装map和set的底层 map和set的模拟实现insertiterator实现的思路operatoroperator- -operator[ ] map和set的封装 介绍map和set的底层实现 map和set的底层 一份模版实例化出key的rb_tree和pair<k,v>的rb_tree rb_tree的Key和Value不是我们之前传统意…

服务器虚拟化技术详解与实战:架构、部署与优化

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 引言 在现代 IT 基础架构中&#xff0c;服务器虚拟化已成为提高资源利用率、降低运维成本、提升系统灵活性的重要手段。通过服务…

Ethflow Round 1 (Codeforces Round 1001, Div. 1 + Div. 2)(前三题)

A. String 翻译&#xff1a; 给你一个长度为 n 的字符串 s&#xff0c;其中包含 0 和/或 1。在一次操作中&#xff0c;您可以从 s 中选择一个非空的子序列 t&#xff0c;使得 t 中任何两个相邻的字符都是不同的。然后&#xff0c;翻转 t 中的每个字符&#xff08;0 变为 1&…

图漾Halcon版本SDK使用教程【V1.1.0新版本】

1.下载并安装 Halcon 1.1 下载Halcon软件 在 Halcon 官网(https://www.mvtec.com/downloads) 下载 Halcon (Windows 版) 安装包&#xff0c;并根据官方文档安装 Halcon&#xff0c;下载HALCON24.11Progress-Steady。 1.2 安装Halcon 1.解压HALCON 24.11.1.0的安装包压缩文件…

VS C++ 配置OPENCV环境

VS C 配置OPENCV环境 1.下载opencv2.安装环境3.opencv环境4.VS配置opencv环境5.EXE执行文件路径的环境lib和dll需要根据是debug还是release环境来区分使用哪个 6.Windows环境 1.下载opencv 链接: link 2.安装环境 双击运行即可 3.opencv环境 include文件路径:opencv\build\…

SpringBoot源码解析(八):Bean工厂接口体系

SpringBoot源码系列文章 SpringBoot源码解析(一)&#xff1a;SpringApplication构造方法 SpringBoot源码解析(二)&#xff1a;引导上下文DefaultBootstrapContext SpringBoot源码解析(三)&#xff1a;启动开始阶段 SpringBoot源码解析(四)&#xff1a;解析应用参数args Sp…

Android实训九 数据存储和访问

实训9 数据存储和访问 一、【实训目的】 1、 SharedPreferences存储数据; 2、 借助Java的I/O体系实现文件的存储&#xff0c; 3、使用Android内置的轻量级数据库SQLite存储数据; 二、【实训内容】 1、实现下图所示的界面&#xff0c;实现以下功能&#xff1a; 1&#xff…

python3+TensorFlow 2.x(三)手写数字识别

目录 代码实现 模型解析&#xff1a; 1、加载 MNIST 数据集&#xff1a; 2、数据预处理&#xff1a; 3、构建神经网络模型&#xff1a; 4、编译模型&#xff1a; 5、训练模型&#xff1a; 6、评估模型&#xff1a; 7、预测和可视化结果&#xff1a; 输出结果&#xff…

Queries Acceleration -Tuning- Tuning Execution 学习笔记

1 Adjustment of RuntimeFilter Wait Time 1.1 Case: Too Short RuntimeFilter Wait Time 1.1.1 没有看懂,好像是等待时间过小也会导致性能下降 1.1.2 set runtime_filter_wait_time_ms = 3000; 2 Data Skew Handling 2.1 Case 1: Bucket Data Skew Leading to Suboptimal …

Python3 OS模块中的文件/目录方法说明十三

一. 简介 前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS 模块中文件、目录的操作方法&#xff1a;os.rmdir() 方法、os.stat() 方法。 二. Python3 OS模块中的文件/目录方法说明十三 1. os.rmdir() 方法 os.rmdir() 方法用于删除指定路…

Ubuntu 顶部状态栏 配置,gnu扩展程序

顶部状态栏 默认没有配置、隐藏的地方 安装使用Hide Top Bar 或Just Perfection等进行配置 1 安装 sudo apt install gnome-shell-extension-manager2 打开 安装的“扩展管理器” 3. 对顶部状态栏进行配置 使用Hide Top Bar 智能隐藏&#xff0c;或者使用Just Perfection 直…

spark运行流程

spark运行流程 任务提交后&#xff0c;先启动 Driver 程序随后 Driver 向集群管理器注册应用程序集群管理器根据此任务的配置文件分配 Executor 并启动Driver 开始执行 main 函数&#xff0c;Spark 查询为懒执行&#xff0c;当执行到 Action 算子时开始反向推 算&#xff0c;根…

Formality:时序变换(二)(不可读寄存器移除)

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 一、引言 时序变换在Design Compiler的首次综合和增量综合中都可能发生&#xff0c;它们包括&#xff1a;时钟门控(Clock Gating)、寄存器合并(Register Merging)、…

QGIS3.34绿色版更新

我打包的QGIS3.34在实际工作中方便了很多初次接触GIS的朋友&#xff0c;感到十分欣慰&#xff01;但由于初次推出也发现了一些问题&#xff0c;本次对该版本进行了一个更新&#xff01; 还是秉承咱一贯理念&#xff0c;方便您使用也方便您不用&#xff01;该工具还是被打包为绿…