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 正在重塑互联网的运作方式。…

pyautogui操控Acrobat DC pro万能PDF转Word,不丢任何PDF格式样式

为了将PDF转换脚本改为多进程异步处理&#xff0c;我们需要确保每个进程独立操作不同的Acrobat窗口。以下是实现步骤&#xff1a; 实现代码 import os import pyautogui import time import subprocess import pygetwindow as gw from multiprocessing import Pooldef conver…

网易前端开发面试题200道及参考答案 (下)

阐述如何实现 img 按照原比例最大化放置在 div 中? 要让 img 按照原比例最大化放置在 div 中,可通过以下几种方式实现: 使用 object - fit 属性 object - fit 是 CSS 中用于规定如何调整替换元素(如 <img>、<video>)的内容以适应其容器的属性。 object - fit…

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的安装包压缩文件…

在计算机上本地运行 Deepseek R1

Download Ollama on Linux Download Ollama on Windows Download Ollama on macOS Deepseek R1 是一个强大的人工智能模型&#xff0c;在科技界掀起了波澜。它是一个开源语言模型&#xff0c;可以与 GPT-4 等大玩家展开竞争。但更重要的是&#xff0c;与其他一些模型不同&…

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\…

kaggle-ISIC 2024 - 使用 3D-TBP 检测皮肤癌-学习笔记

问题描述&#xff1a; 通过从 3D 全身照片 (TBP) 中裁剪出单个病变来识别经组织学确诊的皮肤癌病例 数据集描述&#xff1a; 图像临床文本信息 评价指标&#xff1a; pAUC&#xff0c;用于保证敏感性高于指定阈值下的AUC 主流方法分析&#xff08;文本&#xff09; 基于CatBoo…

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…

《深度揭秘:TPU张量计算架构如何重塑深度学习运算》

在深度学习领域&#xff0c;计算性能始终是推动技术发展的关键因素。从传统CPU到GPU&#xff0c;再到如今大放异彩的TPU&#xff08;张量处理单元&#xff09;&#xff0c;每一次硬件架构的革新都为深度学习带来了质的飞跃。今天&#xff0c;就让我们深入探讨TPU的张量计算架构…

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 …