C++数据结构与算法——贪心算法难题

C++第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C++查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更新,欢迎关注!

文章目录

  • 一、55. 跳跃游戏
  • 二、452. 用最少数量的箭引爆气球
  • 三、435. 无重叠区间
  • 四、763.划分字母区间
  • 五、56. 合并区间
  • 六、53. 最大子数组和

一、55. 跳跃游戏

在这里插入图片描述

class Solution {
public:bool canJump(vector<int>& nums) {// 使用一个遍历表示覆盖范围,当覆盖范围达到数组最后一个元素时 返回true  否则返回falseint cover =0;if(nums.size()==1) return true;for(int i=0;i<=cover;i++){cover = max(nums[i]+i,cover);if(cover>=nums.size()-1) return true;}return false;}
};

在这里插入图片描述

二、452. 用最少数量的箭引爆气球

在这里插入图片描述

class Solution {
public:static bool cmp(const vector<int> &a,const vector<int> &b){return a[0]<b[0];}int findMinArrowShots(vector<vector<int>>& points) {if (points.size()==0) return 0;int result =1;sort(points.begin(),points.end(),cmp);for(int i=1;i<points.size();i++){if(points[i][0]>points[i-1][1]){result++;}else{points[i][1] =min(points[i][1], points[i-1][1]);}}return result;}
};

在这里插入图片描述

三、435. 无重叠区间

在这里插入图片描述

class Solution {
public:static bool cmp(const vector<int> a,const vector<int> b){return a[0]<b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.size()==0) return 0;sort(intervals.begin(),intervals.end(),cmp);int result=0;for(int i=1;i<intervals.size();i++){if(intervals[i][0]>=intervals[i-1][1]){// 不重叠}else{result++;intervals[i][1] = min(intervals[i][1],intervals[i-1][1]);}}return result;}
};

在这里插入图片描述

四、763.划分字母区间

在这里插入图片描述

class Solution {
public:vector<int> partitionLabels(string s) {vector<int> result;int length;// 先求出每个字符出现的最大位置int hashmap[27] ={0};for(int i=0;i<s.length();i++){hashmap[s[i]-'a'] = i;}// 分割int left =0;int right = 0;for(int i=0;i<s.length();i++){right = max(right,hashmap[s[i]-'a']);if(i==right){result.push_back(right-left+1);left = right+1;}}return result;}
};

在这里插入图片描述

五、56. 合并区间

在这里插入图片描述

class Solution {
public:static bool cmp(const vector<int> &a,const vector<int> &b){return a[0]<b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {if (intervals.size()==0) return {};// 结果数组sort(intervals.begin(),intervals.end(),cmp);vector<vector<int>> result;result.push_back(intervals[0]);for(int i=1;i<intervals.size();i++){if(result.back()[1] <intervals[i][0]){// 说明没有重合result.push_back(intervals[i]);}else{// 有重合int right = max(result.back()[1],intervals[i][1]);result.back()[1] = right;}}return result;}
};

在这里插入图片描述

六、53. 最大子数组和

在这里插入图片描述

class Solution {
public:int maxSubArray(vector<int>& nums) {if(nums.size()==1) return nums[0];vector<int> dp(nums.size(),0);dp[0] = nums[0];int result =nums[0];for(int i=1;i<nums.size();i++){dp[i] = max(dp[i-1]+nums[i],nums[i]);if(dp[i]>result) result = dp[i];}return result;}
};

在这里插入图片描述

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

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

相关文章

计算机视觉异常检测——PatchCore面向全召回率的工业异常检测

1. 概述 异常检测问题在工业图像数据分析中扮演着至关重要的角色&#xff0c;其目的是从大量正常数据中识别出异常行为或模式。这一任务的挑战在于&#xff0c;正常数据的样本相对容易获取&#xff0c;而异常情况却因其稀有性和多样性而难以收集。为了解决这一问题&#xff0c…

跟TED演讲学英文:Why AI will spark exponential economic growth by Cathie Wood

TED英文文稿 文章目录 TED英文文稿Why AI will spark exponential economic growthIntroductionVocabularyTranscriptSummary Why AI will spark exponential economic growth Link: https://www.ted.com/talks/cathie_wood_why_ai_will_spark_exponential_economic_growth? …

家庭网络防御系统搭建-将NDR系统的zeek日志集成到securit yonion

在前面的文章中安装了zeek,这里&#xff0c;安装了securityonion&#xff0c;这里&#xff0c;本文讲述如何将zeek生成的日志发送到siem security onion之中。 所有日志集成的步骤分为如下几步&#xff1a; 日志收集配置日志发送接收日志解析配置日志展示配置 ZEEK日志收集配…

[leetcode] 164. 最大间距

给定一个无序的数组 nums&#xff0c;返回 数组在排序之后&#xff0c;相邻元素之间最大的差值 。如果数组元素个数小于 2&#xff0c;则返回 0 。 您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 示例 1: 输入: nums [3,6,9,1] 输出: 3 解释: 排序后的…

大型语言模型如何助力推荐系统:综述研究

论文地址&#xff1a;https://arxiv.org/pdf/2306.05817.pdf 这篇论文主要探讨了推荐系统&#xff08;RS&#xff09;如何从大型语言模型&#xff08;LLM&#xff09;中获益。论文首先指出&#xff0c;随着在线服务和网络应用的快速发展&#xff0c;推荐系统已成为缓解信息过载…

路由器如何端口映射到外网?

随着互联网的发展和普及&#xff0c;远程访问已经成为了现代社会的一个重要需求。在复杂的网络环境下&#xff0c;特别是涉及异地组网的情况下&#xff0c;实现远程访问变得更加困难。本文将介绍一种名为【天联】的组网产品&#xff0c;它可以解决复杂网络环境下的远程连接问题…

搜维尔科技:Patchwork 3D工业仿真实时渲染,将CAD 数据转换成真实感的3D模型以用于工业用途

Patchwork 3D工业仿真 实时渲染点击跳转官网 从实时渲染到真实照片 根据工作阶段所需的逼真度&#xff0c;您可以使用三个渲染引擎&#xff0c;从最快的&#xff08;OpenGL&#xff0c;交互式&#xff09;到最逼真的&#xff08;光线跟踪&#xff0c;Iray物理逼真&#xff09;…

vue中使用axios获取不到响应头Content-Disposition的解决办法

项目中&#xff0c;后端返回的文件流; 前端需要拿到响应头里的Content-Disposition字段的值&#xff0c;从中获取文件名 在控制台Headers中可以看到相关的字段和文件名&#xff0c;但是在axios里面却获取不到 如果想要让客户端访问到相关信息&#xff0c;服务器不仅要在head…

xilinx fpga 程序固化(含sdk)

一、前言 xilinx 旗下的产品主要有包含有处理器的SOC系列&#xff0c;也有只有纯逻辑的fpga&#xff0c;两者的程序固化的方法并不相同&#xff0c;本文介绍含有处理器或者microblaze中有程序的固化。 二、固化流程 2.1 在sdk中固化 SDK中选择Xilinx Tools–Program FPGA&a…

web安全学习笔记【22】——文件上传(1)

WEB攻防-PHP应用&文件上传&函数缺陷&条件竞争&二次渲染&黑白名单&JS绕过 演示案例&#xff1a; PHP-原生态-文件上传-前后端验证PHP-原生态-文件上传-类型文件头验证PHP-原生态-文件上传-后缀黑白名单验证PHP-原生态-文件上传-解析配置&二次渲染…

Android Camera API 1打开相机失败

目前Camera API 1使用的比较少了&#xff0c;一般代码如下。遇到的问题是camera1接口无法打开相机&#xff0c;cam2接口打开正常。最后排查结果是 sensor的 frameRate 配置不对。 Camera camera;CameraPreview mPreview;SuppressLint("MissingPermission")Overridepr…

React 中实现组合键操作的三种方法

在 React 中实现组合键可以使用以下方式: 使用 KeyboardEvent.getModifierState() 方法: import React, { useState, useCallback } from react;const MyComponent () > {const [isCtrlShiftPressed, setIsCtrlShiftPressed] useState(false);const handleKeyDown useC…

010 spring整合mybatis(事务)(xml)

文章目录 pom.xmlProductsMapper.javaProductsServiceImpl.javaProductsService.javaProductsMapper.xmlApplicationContext.xmldb.propertiesmybatis-config.xmlProductsServiceImplTest.java pom.xml <?xml version"1.0" encoding"UTF-8"?> <…

SpringBoot怎么使用Validation校验参数

1. Validation 介绍 Validation 是用于检查程序代码中参数的有效性的框架&#xff0c;作为 Spring 框架中的一个参数校验工具&#xff0c;集成在 spring-context 包中。 1.1 Validation 注解 Validation 包含了众多的注解来帮助对Java程序不同类型的参数进行校验&#xff0c;校…

XUbuntu22.04之Typora添加水印并输出pdf文件(二百二十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP…

功能测试_验证某城市电话号码的正确性

案例&#xff1a;验证某城市电话号码的正确性 功能测试_等价类设计用例&#xff1a; 步骤&#xff1a; 1:明确需求&#xff1a;电话号码是否正确 2:划分等价类&#xff1a;有效等价类、有效取值、无效等价类、无效取值 3&#xff1a;提取数据编写用例&#xff1a;用例编号…

STM32F407+FreeRTOS+LWIP UDP组播

开发环境介绍&#xff1a; MCU&#xff1a;STM32F407ZET6 网卡&#xff1a;LAN8720A LWIP版本&#xff1a;V1.1.0 FreeRTOS 版本&#xff1a;V10.2.1 LAN8720A硬件原理图&#xff1a; 硬件连接说明&#xff1a; MII_RX_CLK/RMII_REF_CLK ------>PA1 …

python语言之round(num, n)小数四舍五入

文章目录 python round(num, n)小数四舍五入python round(num, n)基础银行家舍入&#xff08;Bankers Rounding&#xff09;利息被银行四舍五入后&#xff0c;你到底是赚了还是亏了&#xff1f; python小数位的使用decimal模块四舍五入(解决round 遇5不进) python round(num, n…

云安全在金融领域的作用是什么?

云安全在金融领域发挥着至关重要的作用&#xff0c;使金融机构能够保护敏感数据、遵守监管要求并推动创新。通过实施强有力的安全措施、利用先进技术并对新出现的威胁保持警惕&#xff0c;金融机构可以保护其数字资产并维持客户的信任。 金融机构面临的挑战 1.缺乏全网数据支撑…

GPT与R语言回归模型(lmglm)、混合效应模型、多元统计分析

自2022年GPT&#xff08;Generative Pre-trained Transformer&#xff09;大语言模型的发布以来&#xff0c;它以其卓越的自然语言处理能力和广泛的应用潜力&#xff0c;在学术界和工业界掀起了一场革命。在短短一年多的时间里&#xff0c;GPT已经在多个领域展现出其独特的价值…