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

【完整题单10、贪心与思维(区间合并)】【✅✅✅✅】

目录

  • 知识框架
  • No.0 筑基
  • No.1 区间数组
    • 题目来源:Acwing-803. 区间合并
    • 题目来源:LeetCode-56. 合并区间
  • No.2 数字数组
    • 题目来源:LeetCode-495. 提莫攻击

知识框架

No.0 筑基

请先学习下知识点,道友!
题目知识点大部分来源于此:

题目例题大部分来源于此:
Y总的模板来自Acwing如下:

// 将所有存在交集的区间合并voidmerge(vector<PII>&segs){vector<PII>res;sort(segs.begin(),segs.end());intst=-2e9,ed=-2e9;for(autoseg:segs)if(ed<seg.first){if(st!=-2e9)res.push_back({st,ed});st=seg.first,ed=seg.second;}elseed=max(ed,seg.second);if(st!=-2e9)res.push_back({st,ed});segs=res;}

No.1 区间数组

题目来源:Acwing-803. 区间合并

题目描述:

题目思路:

题目代码:

#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;typedefpair<int,int>PII;intn,l,r;vector<PII>segs;voidmerge(vector<PII>&segs){vector<PII>res;sort(segs.begin(),segs.end());//按区间左端点排序,sort默认排序segs的第一项intst=-2e9,ed=-2e9;//此时st和ed只要比-1e9小就可以for(autoseg:segs){if(ed<seg.first){if(st!=-2e9)res.push_back({st,ed});st=seg.first;ed=seg.second;}elseed=max(ed,seg.second);}if(st!=-2e9)res.push_back({st,ed});segs=res;//不能忘}intmain(){cin>>n;for(inti=0;i<n;i++){cin>>l>>r;segs.push_back({l,r});}merge(segs);cout<<segs.size()<<endl;return0;}//该代码引用AcWing网站的代码

题目来源:LeetCode-56. 合并区间

题目描述:

题目思路:

贪心?

题目代码:

classSolution{public:vector<vector<int>>merge(vector<vector<int>>&intervals){intn=intervals.size();if(n==0)return{};//很明显的区间合并;// 先根据。起始点start进行排序vector<pair<int,int>>ans;for(auto&inter:intervals){ans.push_back(pair<int,int>(inter[0],inter[1]));}sort(ans.begin(),ans.end());vector<vector<int>>res;res.push_back({ans[0].first,ans[0].second});for(inti=1;i<n;i++){auto&last_res=res.back();auto&last_start=last_res[0];auto&last_end=last_res[1];autonow_ans=ans[i];autonow_start=now_ans.first;autonow_end=now_ans.second;if(now_start<=last_end){if(now_end<last_end){continue;}else{last_end=now_end;}}else{res.push_back({now_start,now_end});}}returnres;}};

No.2 数字数组

题目来源:LeetCode-495. 提莫攻击

题目描述:

题目思路:

感觉像是 区间合并,但是 贪心也行吧

题目代码:

classSolution{public:intfindPoisonedDuration(vector<int>&timeSeries,intduration){intn=timeSeries.size();if(n==0)return0;// sort(timeSeries.begin(), timeSeries.end());// 非递减;intres=0;intend=timeSeries[0]+duration;res=duration;for(inti=1;i<n;i++){autonow_end=timeSeries[i]+duration;autonow_se=timeSeries[i];if(now_se<=end){// 无间隙续上res=res+(now_end-end);}else{// 没有续上res=res+duration;}// 新的endend=now_end;}returnres;}};
http://www.cnnetsun.cn/news/2746367.html

相关文章:

  • 如何高效解密NCM文件?ncmdumpGUI完整指南助你解放音乐收藏
  • [MAF预定义的AIContextProvider-07]FileAccessProvider——为Agent提供文件读写能力
  • 手把手教你排查PHY自协商失败:从寄存器状态到硬件走线的完整调试流程
  • 简单3步集成!MOSS-TTS-Nano-100M-ONNX与MOSS-Audio-Tokenizer的无缝对接指南
  • Arxiv上传后想撤稿?先了解这3个‘流氓’规则,别毁了你的专利!
  • 30 分钟完成企业站开发,OpenClaw 自动化生成 HTML5 前端项目(含安装包)
  • 别再被MATLAB的PSNR/SSIM函数坑了!RGB和灰度图计算的差异详解与实战避坑
  • 终极Windows窗口管理指南:如何使用X-Mouse Controls实现鼠标悬停激活窗口
  • 116.彻底搞懂手机刷机底层逻辑|启动链+分区表+USB协议+故障修复全解析
  • Matlab版DTMF拨号音识别工具:支持录音分析与结果可视化
  • Dreamweaver CS6里的‘层’到底怎么用?手把手教你用AP Div搞定网页布局
  • Electron应用容器化部署实战:跨越环境鸿沟的技术解法
  • 3步搞定抖音无水印下载:douyin-downloader的极简实战指南
  • GD32E230 ADC注入通道实战:用定时器2触发,1ms精准采样电机相电流
  • Boss Show Time高效指南:5个技巧精准掌握招聘发布时间,提升求职成功率
  • 第十七篇:《Docker 日志管理:驱动配置与集中收集》
  • 滚动轴承多负载故障识别Python工具包:含12K数据集、预处理脚本与1D-CNN训练代码
  • 5分钟完成原神成就自动化管理:YaeAchievement终极免费工具全解析
  • 语义内核操作逻辑模型:AI认知的底层运行机制
  • 保姆级教程:在嵌入式Linux上实战I3C SDR模式的热加入与带内中断
  • Cookie 是什么?一篇讲给非技术朋友的“小纸条
  • 告别OPC!用Snap7和Visual Studio 2022轻松搞定西门子PLC通信(附完整C++代码)
  • 别再分开求实部虚部了!Wirtinger导数教你像处理实数一样优雅地处理复数求导
  • 告别Windows 7!手把手教你下载安装最新版DevEco Studio 2.0,10分钟搞定鸿蒙开发环境
  • Gemma 1.1深度解析:48层架构、8K上下文与4-bit量化的工业级落地实践
  • CTF解题新思路:当Session文件写入遇上路径穿越——以BUU‘Easy Notes’为例
  • 企业级AI智能关联整合方案(Gartner未公开评估模型首次披露)
  • Claude高效工作流三要素:角色锚定、上下文压缩、输出驯化
  • 【职场】你越相信公司使命,你就越容易成为被牺牲的那个人
  • 手机号定位神器:3秒查询归属地,地图精准导航