贪心算法习题其三【力扣】【算法学习day.20】

前言

###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.划分字母区间

题目链接:763. 划分字母区间 - 力扣(LeetCode)

题面:

代码:

class Solution {public List<Integer> partitionLabels(String s) {List<Integer> list = new ArrayList<>();char[] srr = s.toCharArray();int n = s.length();int[] addr = new int[30];for(int i = 0;i<n;i++){addr[srr[i]-'a'] = i;}int count = 0;int l = 0;int flag = 0;int flagl = 0;while(l<n){if(flag == 0){count++;flagl = addr[srr[l]-'a'];if(flagl==l){list.add(1);count=0;}flag=1;}else{flagl = Math.max(addr[srr[l]-'a'],flagl);count++;if(l==flagl){list.add(count);count = 0;flag = 0;}}l++;}return list;}
}

2.合并区间

题目链接:56. 合并区间 - 力扣(LeetCode)

题面:

代码:

class Solution {public int[][] merge(int[][] intervals) {int n = intervals.length;int[][] ans = new int[n][2];Arrays.sort(intervals, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o1[0] - o2[0];}});int xl = 0;int xr = 0;int flag = 0;int l = 0;int count = 0;while (l < n) {if (flag == 0) {if (l == n - 1) {ans[count][0] =intervals[l][0];ans[count++][1] =intervals[l][1];l++;break;}xl = intervals[l][0];xr = intervals[l][1];flag=1;}else{if((intervals[l][0]<=xr&&xr<=intervals[l][1])||(xr>=intervals[l][1]&&xl<=intervals[l][0])){xr =Math.max(intervals[l][1],xr);xl =Math.min(intervals[l][0],xl);if(l==n-1){ans[count][0] =xl;ans[count++][1] = xr;break;}}else{ans[count][0] =xl;ans[count++][1] = xr;l--;flag = 0;}}l++;}int[][] ans2 = new int[count][2];for(int i = 0;i<count;i++){ans2[i]=ans[i];}return ans2;}
}

后言

上面是贪心算法的部分习题,下一篇会讲解贪心算法的其他相关力扣习题,希望有所帮助,一同进步,共勉!   

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

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

相关文章

shell脚本案例:RAC配置多路径时获取磁盘设备WWID和磁盘大小

使用场景 在RAC配置多路径时&#xff0c;需要获取到磁盘设备的wwid。因为RAC的磁盘配置是提前规划好的&#xff0c;只知道wwid&#xff0c;不知道磁盘对应大小&#xff0c;是不知道应该如何配置多路径的mutipath.conf文件的&#xff1b;而凭借肉眼手工去对应磁盘设备的wwid和大…

【毫米波雷达(三)】汽车控制器启动流程——BootLoader

汽车控制器启动流程——BootLoader 一、什么是Bootloader(BT)&#xff1f;二、FBL、PBL、SBL、ESS的区别三、MCU的 A/B分区的实现 一、什么是Bootloader(BT)&#xff1f; BT就是一段程序&#xff0c;一段引导程序。它包含了启动代码、中断、主程序等。 雷达启动需要由BT跳转到…

论技术思维和产品思维

大家好&#xff0c;我是农村程序员&#xff0c;独立开发者&#xff0c;前端之虎陈随易。 这是我的个人网站&#xff1a;https://chensuiyi.me。 我的所以文章都可以在我的个人网站找到&#xff0c;欢迎访问&#xff0c;也欢迎与我交朋友。 程序员做独立开发&#xff0c;技术思…

【python】flash-attn安装

这个命令&#xff1a; 确保使用正确的 CUDA 12.6 工具链 设置必要的 CUDA 环境变量 包含了常见的 GPU 架构支持 利用你的128核心进行并行编译 # 清理之前的安装 proxychains4 pip uninstall -y flash-attn# 获取 CUDA 路径 CUDA_PATH$(dirname $(dirname $(which nvcc)))# 使用…

RFID资产管理

随着物联网和智能制造的发展&#xff0c;RFID资产管理逐渐成为企业提升运营效率的重要工具。利用RFID技术&#xff0c;企业能够实时跟踪和管理各种固定资产&#xff0c;从而提高资产利用率&#xff0c;降低运营成本。在现代化的管理体系中&#xff0c;RFID资产管理不仅限于资产…

linux查看系统架构的命令

两种方式&#xff0c;以下以中标麒麟为示例&#xff1a; 1.cat /proc/verison Linux version 3.10.0-862.ns7_4.016.mips64el mips64el即为架构 2.uname -a 输出所有内容 Linux infosec 3.10.0-862.ns7_4.016.mips64el #1 SMP PREEMPT Mon Sep 17 16:06:31 CST 2018 mips64el…

Transformer+KAN系列时间序列预测代码

前段时间&#xff0c;来自 MIT 等机构的研究者提出了一种非常有潜力的替代方法 ——KAN。该方法在准确性和可解释性方面表现优于 MLP。而且&#xff0c;它能以非常少的参数量胜过以更大参数量运行的 MLP。 KAN的发布&#xff0c;引起了AI社区大量的关注与讨论&#xff0c;同时…

分享一个免费的网页转EXE的工具

HTML2EXE是一款在Windows系统下将Web项目或网站打包成EXE执行程序的免费工具。这款工具能够将单页面应用、传统HTMLJavaScriptCSS生成的网站、Web客户端&#xff0c;以及通过现代前端框架&#xff08;如Vue&#xff09;生成的应用转换成独立的EXE程序运行。它支持将任何网站打包…

全新更新!Fastreport.NET 2025.1版本发布,提升报告开发体验

在.NET 2025.1版本中&#xff0c;我们带来了巨大的期待功能&#xff0c;进一步简化了报告模板的开发过程。新功能包括通过添加链接报告页面、异步报告准备、HTML段落旋转、代码文本编辑器中的文本搜索、WebReport图像导出等&#xff0c;大幅提升用户体验。 FastReport .NET 是…

Windows 下实验视频降噪算法 MeshFlow 详细教程

MeshFlow视频降噪算法 Meshflow 视频降噪算法来自于 2017 年电子科技大学一篇高质量论文。 该论文提出了一个新的运动模型MeshFlow&#xff0c;它是一个空间平滑的稀疏运动场 (spatially smooth sparse motion field)&#xff0c;其运动矢量 (motion vectors) 仅在网格顶点 (m…

C++ --- 多线程的使用

目录 一.什么是线程&#xff1f; 线程的特点&#xff1a; 线程的组成&#xff1a; 二.什么是进程&#xff1f; 进程的特点&#xff1a; 进程的组成&#xff1a; 三.线程与进程的关系&#xff1a; 四.C的Thread方法的使用&#xff1a; 1.创建线程&#xff1a; 2.join(…

区块链底层协议比较#DAPP开发

区块链技术在近年来迅速发展&#xff0c;作为一种去中心化的分布式账本技术&#xff0c;区块链在各个领域展现出了巨大的潜力。随着需求的不断增加&#xff0c;各种区块链层级&#xff08;L0、L1、L2&#xff09;应运而生。本文将对这三种层级进行深入的介绍和对比。 一、区块链…

【资调实习报告】华中农业大学资源调查与评价实习报告

一、前言 1.1实验目的与要求 1&#xff09;理论和实践相结合&#xff0c;培养野外独立工作能力&#xff1a;通过将课堂上所学的理论知识与在贺胜桥研究区域的实地调查相结合&#xff0c;帮助学生培养在野外独立工作的能力&#xff0c;包括计划制定、采集数据、观察现象、分析…

《华为工作法》读书摘记

无论做什么事情&#xff0c;首先要明确的就是做事的目标。目标是引导行动的关键&#xff0c;也是证明行动所具备的价值的前提&#xff0c;所以目标管理成了企业与个人管理的重要组成部分。 很多时候&#xff0c;勤奋、努力并不意味着就一定能把工作做好&#xff0c;也并不意味…

异步4位计数器(Quartus与Modelsim联合仿真)

异步计数器&#xff08;也称为ripple-through counter&#xff09;的特点是每一位触发器的输出作为下一位触发器的时钟输入&#xff0c;因此计数速度会因为级联触发器的传播延迟而受到限制。这种计数器的最大工作频率通常低于同步计数器。 一、电路符号 输入信号&#xff1a;时…

TIA 中用 GSD 方式组态 ET200SP 安全模块时如何用 S7-FCT 分配安全目标地址

1 概述 用 GSD 方式组态的 ET200SP 的分布式从站上&#xff0c;现在可以使用安全模块&#xff08;早期 是无法支持&#xff09;&#xff0c;这种用法对 ET200SP 接口模块的版本和编程软件的版本都有要求。 ET200SP 故障安全模块可通过 GSD 文件用于以下接口模块&#xff1a; …

git 入门作业

任务1: 破冰活动&#xff1a;自我介绍任务2: 实践项目&#xff1a;构建个人项目 git使用流程&#xff1a; 1.将本项目直接fork到自己的账号下&#xff0c;这样就可以直接在自己的账号下进行修改和提交。 这里插一条我遇到的问题&#xff0c;在fork的时候没有将那个only camp4的…

C++右值引用

一、右值引用的定义 1、什么是左值和左值引用&#xff1f; 左值指的是可以出现在等号左边&#xff0c;可以被赋值(非const)&#xff0c;可以取地址的值。 左值引用就是左值的引用&#xff0c;给左值取别名。(int& lr a) 2、什么是右值和右值引用&#xff1f; 右值指的是不…

【深度学习】时间序列预测、分类、异常检测、概率预测项目实战案例

说明&#xff1a;本专栏内容来自于个人学习笔记、以及相关项目的实践与总结。写作目的是为了让读者体会深度学习的独特魅力与无限潜力&#xff0c;以及在各行各业之中的应用与实践。因作者时间精力有限&#xff0c;难免有疏漏之处&#xff0c;期待与读者共同进步。 前言 在当今…