贪心算法高频问题-区间问题

判断区间是否重叠(Leetcode 252)

public static boolean canAttendMeetings(int[][] intervals) {//按照会议开始时间排序Arrays.sort(intervals, (a, b) ->  a[0] - b[0]);for (int i = 0; i < intervals.length - 1; i++) {if (intervals[i + 1][0] <= intervals[i][1]) {return false;}}return true;}

插入区间(LeetCode 57)

/*** 先把结尾处小于新增区间初始的加入到ans* 对重复/新增区间做判断* 把开始点大于上一节点后的节点加入到ans* @param intervals* @param newInterval* @return*/public static int[][] insert(int[][] intervals, int[] newInterval) {int[][] ans = new int[intervals.length + 1][2];int t = 0;int i = 0;// 先把结尾处小于新增区间初始的加入到answhile (i < intervals.length && intervals[i][1] < newInterval[0]) {ans[t++] = intervals[i++];}// 对重复/新增区间做判断while (i < intervals.length && intervals[i][0] <= newInterval[1]) {newInterval[0] = Math.min(intervals[i][0], newInterval[0]);newInterval[1] = Math.max(intervals[i++][1], newInterval[1]);}ans[t++] = newInterval;// 把开始点大于上一节点后的节点加入到answhile (i < intervals.length && intervals[i][0] > newInterval[1]) {ans[t++] = intervals[i++];}return Arrays.copyOf(ans, t);}

字符串分割(LeetCode 763)

public static List<Integer> partitionLabels(String S) {List<Integer> list = new LinkedList<>();char[] chars = S.toCharArray();int[] edges = new int[26];for (int i = 0; i < chars.length; i++){edges[chars[i] - 'a'] = i;}int index = 0, pre = -1;for (int i = 0; i < chars.length; i++) {index = Math.max(index, edges[chars[i] - 'a']);if (i == index) {list.add(i - pre);pre = i;}}return list;}

加油站问题(LeetCode 134)

public static int canCompleteCircuit(int[] gas, int[] cost) {int totNum = 0;int curNum = 0;int start = 0;for (int i = 0; i < gas.length; i++) {curNum += gas[i] - cost[i];totNum += gas[i] - cost[i];if (curNum < 0) {curNum = 0;start = i + 1;}}if (totNum < 0) {return -1;}return start;}

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

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

相关文章

「Verilog学习笔记」自动售卖机

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule sale(input clk ,input rst_n ,input sel ,//sel0,5$dranks,sel1,10&$drinksinput …

JavaScript原型,原型链 ? 有什么特点?

一、原型 JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象 当试图访问一个对象的属性时&#xff0c;它不仅仅在该对象上搜寻&#xff0c;还会搜寻该对象的原型&#xff0c;以及该对象的原型的原型&#xff0c;依次层层向上搜索&#xff0c;直到找到一个…

【Linux笔记】文件和目录操作

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 命令 ls (List): pwd (Print Working Directory): cp (Copy): mv (Move): rm (Remove): 结语 我的其他博客 前言 学习Linux命令…

前端基础vue路由懒加载

为什么用路由懒加载 首屏组件加载速度更快一些&#xff0c;解决白屏问题&#xff0c;常言道需要就加载&#xff0c;不需要就先放一边 懒加载定义 懒加载简单来说就是延迟加载或按需加载&#xff0c;即在需要的时候的时候进行加载。 使用 常用的懒加载方式有两种&#xff1a;即…

Vue项目里rem的使用

先在src下的libs文件夹下新建一个js文件,取名为rem.js,封装一个换算方法: // 此处的16跟上面的16对应,同样是倍数 const baseSize = 16 // 设置根节点的font-size大小函数 function setRem () {// 375为设计稿页面宽度,如为750,把375改为750const scale = document.docu…

案例096:基于微信小程序的社区团购系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;Spring Boot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder…

python dash 的学习笔记1

dash 用python开发web界面 https://dash.plotly.com/ 官方上支持jula F# python一类。当然我只会python只学习python中使用dash. 要做一个APP&#xff0c;用php,java以及.net都可以写&#xff0c;只所有选择python是因为最近在用这一个。同时也发现python除了慢全是优点。 资料…

MES系统怎么实现车间管理中的生产计划和排产计划

MES中的生产计划和排产计划都是制造企业中非常重要的概念&#xff0c;它们的目的是为了确保企业能够按时交付高质量的产品&#xff0c;同时还要保持生产效率和成本效益。 一、生产计划 生产计划是指制造企业为了满足客户需求而制定的计划&#xff0c;它包括了制造的数量、时间…

基于SSM的面向TCP_IP的网络互联实验平台

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SSM的面向TCP和IP的网络互联实验平台…

计算机网络——计算机网络的概述(一)

前言&#xff1a; 面对马上的期末考试&#xff0c;也为了以后找工作&#xff0c;需要掌握更多的知识&#xff0c;而且我们现实生活中也已经离不开计算机&#xff0c;更离不开计算机网络&#xff0c;今天开始我们就对计算机网络的知识进行一个简单的学习与记录。 目录 一、什么…

java easyexcel上传和下载数据

安装依赖 easyexcel官方文档 <!--通过注解的方式导出excel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.1</version></dependency>注意踩坑&#xff1a;easyexcel会…

【单调栈】LeetCode:2818操作使得分最大

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 题目 给你一个长度为 n 的正整数数组 nums 和一个整数 k 。 一开始&#xff0c;你的分数为 1 。你可以进行以下操作至多 k 次&#xff0c;目标是使你的分数最大&#xff1a; 选择一个之前没有选过的 非…

【已解决】Python Bresenham 3D算法

放一段使用Python实现Bresenham 3D 算法的代码&#xff0c;并通过Matplot可视化 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from numba import njitnjit def bresenham_safe(grid, x0, y0, z0, x1, y1, z1, value_to_fill…

linux系统和网络(二):进程和系统时间

本文主要探讨linux系统进程和系统相关知识&#xff0c;本博客其他博文对该文章的部分内容有详细介绍 main函数 int main(int argc,char *argv[],char *envp[]); 操作系统下main执行前先执行引导代码,编译连接引导代码和程序连接在一起构成可执行程序,加载器将程序加载到内存中…

Docker与容器化安全:漏洞扫描和安全策略

容器化技术&#xff0c;特别是Docker&#xff0c;已经成为现代应用程序开发和部署的关键工具。然而&#xff0c;容器化环境也面临着安全挑战。为了保障容器环境的安全性&#xff0c;本文将介绍如何进行漏洞扫描、制定安全策略以及采取措施来保护Docker容器。我们将提供丰富的示…

conda环境下更改虚拟环境安装路径

1 引言 在Anaconda中如果没有指定路径,虚拟环境会默认安装在anaconda所安装的目录下,但如果默认环境的磁盘空间不足&#xff0c;无法满足大量安装虚拟环境的需求&#xff0c;此时我们需要更改虚拟环境的安装路径&#xff0c;有以下两种方案&#xff1a; 方案1&#xff1a; 每次…

Linux--编写系统服务脚本

编写一个名为myprog的系统服务脚本&#xff0c;通过位置变量s1指定的start、stop、restart、status控制参数&#xff0c;分别用来启动、停止、重启sleep进程&#xff0c;以及查看sleep进程的状态。其中&#xff0c;命令sleep用来暂停指定秒数的时间&#xff0c;这里仅用做测试&…

【数据结构和算法】---栈和队列的互相实现

目录 一、用栈实现队列1.1初始化队列1.2模拟入队列1.3模拟出队列1.4取模拟的队列头元素1.5判断队列是否为空 二、用队列实现栈2.1初始化栈2.2模拟出栈2.3模拟入栈2.4取模拟的栈顶元素2.5判读栈是否为空 一、用栈实现队列 具体题目可以参考LeetCode232. 用栈实现队列 首先要想到…

SpringMVC:整合 SSM 下篇

文章目录 SpringMVC - 05整合 SSM 下篇一、设计页面1. 首页&#xff1a;index.jsp2. 展示书页面&#xff1a;showBooks.jsp3. 增加书页面&#xff1a;addBook.jsp4. 修改书页面&#xff1a;updateBook.jsp5. 总结 二、控制层1. 查询全部书2. 增加书3. 修改书4. 删除书5. 搜索书…

【华为机试】2023年真题B卷(python)-单词接龙

一、题目 题目描述&#xff1a; 单词接龙的规则是&#xff1a;可用于接龙的单词首字母必须要前一个单词的尾字母相同&#xff1b; 当存在多个首字母相同的单词时&#xff0c;取长度最长的单词&#xff0c;如果长度也相等&#xff0c;则取字典序最小的单词&#xff1b;已经参与接…