代码随想录算法训练营day31|134.加油站、135. 分发糖果、406.根据身高重建队列

134.加油站

如下图所示:
当索引一道2的时候,剩余油量的总量=1+3-6 < 0,这个时候说明以索引0为起点不合适,将起点更新为索引3.
转自代码随想录:
两点证明:
1.如果我们从蓝色段中间选一个点开始,是不是最后sumGas就不小于0?
不会,我们可以看如下图,如果蓝色sumGas<0,sumGas1>0==>可以推出sumGas2<0,这样就不符合我们在蓝色段结束才sumGas<0的条件。
在这里插入图片描述
2.最终所有的剩余油量相加大于等于0就一定可以跑完一圈吗?
一定会,可以这样想:
这个图画成一个环形图,前进方向为顺时针。假设totalsum=0,那么走一圈油量和消耗抵消下来就为0(先不管油够不够走到每一站),假设从起点到第i点油量不够消耗,那么从i点继续走回起点油量就肯定大于消耗,因为总油量和消耗相等。那么答案很明显了,我既然从起点顺时针走到i点又不够,那我从i点顺时针走回起点油就够了

406.根据身高重建队列

这道题目分为两步:
1.将数组中的元素按照身高降序排列,如果身高相同,按照前面的人数升序排列
2.将每一个元素按照前面的人数插入对应的位置
第一步满足了所有元素使降序排列,当元素往前面插入的时候不会影响其他元素满足前面的人数的条件。

class Solution {public int[][] reconstructQueue(int[][] people) {// 身高从大到小排(身高相同k小的站前面)Arrays.sort(people, (a, b) -> {if (a[0] == b[0]) return a[1] - b[1];   // a - b 是升序排列,故在a[0] == b[0]的狀況下,會根據k值升序排列return b[0] - a[0];   //b - a 是降序排列,在a[0] != b[0],的狀況會根據h值降序排列});LinkedList<int[]> que = new LinkedList<>();for (int[] p : people) {que.add(p[1],p);   //Linkedlist.add(index, value),會將value插入到指定index裡。}return que.toArray(new int[people.length][]);}
}

135. 分发糖果

思路:数组从左向右遍历一遍,如果右大于左,置为加一
再从右向左遍历一遍,如果左大于右,置为加一

class Solution {public int candy(int[] ratings) {//思路:数组从左向右遍历一遍,如果右大于左,置为加一//再从右向左遍历一遍,如果左大于右,置为加一int len = ratings.length;int[] candyArr = new int[len];candyArr[0] = 1;//从左向右for(int i = 1;i < len;i++){if(ratings[i-1] < ratings[i]){candyArr[i] = candyArr[i-1] + 1;}else{candyArr[i] = 1;}}//从右向左for(int i = len-2;i >= 0;i--){if(ratings[i] > ratings[i+1]){candyArr[i] = Math.max(candyArr[i],candyArr[i+1]+1);  //必须保证既比右边大又比左边大}}int totalNum = 0;for(int n:candyArr){totalNum += n;}return totalNum;}
}

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

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

相关文章

从灵感到成品:使用AI生成博客文章的完整指南

在信息爆炸的时代&#xff0c;每个人都有讲述自己故事的权利和需求。博客作为一种表达方式&#xff0c;不仅能记录个人经历&#xff0c;还能分享知识和观点。然而&#xff0c;许多人在写博客文章时&#xff0c;常常会遇到灵感枯竭、时间不够用或者不知道如何开始等问题。幸运的…

光伏储能系统/安科瑞DTSD1352-CF双向计量表-安科瑞 蒋静

1 长期以来&#xff0c;我国施行居民用电低价政策&#xff0c;居民电价大幅低于供电成本&#xff0c;虽然实施了全天分三时段的阶梯电价政策&#xff0c;但过去近10年中高峰节电的效果却不够明显。从分时用电运作机制来看&#xff0c;居民用电价格的波动幅度不大&#xff0c;但…

华为云鲲鹏架构docker部署2048小游戏

华为云鲲鹏架构docker部署2048小游戏 1. 鲲鹏架构ESC2. 配置docker3. 上传2048镜像4. 删除容器,镜像 1. 鲲鹏架构ESC 2. 配置docker 安装dockeryum -y install docker开机启动 systemctl enable docker启动docker服务 systemctl start docker查询docker的运行版本 docker -v3…

时序分析基本概念介绍——min pulse width 最小脉冲宽度

文章目录 前言一、什么是 min pulse width&#xff1f;二、为什么检查 min pulse width&#xff1f;三、如何设置 min pulse width约束&#xff1f;1. 在sdc里面定义2. library里面定义 四、如何检查 min pulse width&#xff1f;五、如何修复 min pulse width&#xff1f;总结…

docker启动ws-scrcpy和redroid记录

git克隆最新的ws-scrcpy代码 git clone gitgithub.com:NetrisTV/ws-scrcpy.git进入ws-scrcpy目录新建Dockerfile文件&#xff0c;内容如下 FROM node:16-alpine WORKDIR /appRUN npm config set registry http://mirrors.cloud.tencent.com/npm/ RUN npm install -g node-gyp…

攻防世界-Web题目1

目录 cookie 1、题目 2、知识点 3、思路 get_post 1、题目 2、知识点 3、思路 disabled_button 1、题目 2、知识点 3、思路 backup 1、题目 2、知识点 3、思路 cookie 1、题目 2、知识点 cookie&#xff0c;数据包 3、思路 题目提示我们cookie&#xff0c;抓…

【ai】trition:tritonclient.utils.shared_memory 仅支持linux

Can’t find tritonclient.utils.shared_memory on WIN10 #4149yolov4的python客户端 导入以后,windows 的pycharm 就是看不到折腾了很久:SaviorEnv 环境下安装tritonclient[all]也会失败 (base) C:\Users\zhangbin>conda create -n SaviorEnv python=3.8 Collecting pack…

ubuntu 18 虚拟机安装(1)

ubuntu 18 虚拟机安装 ubuntu 18.04.6 Ubuntu 18.04.6 LTS (Bionic Beaver) https://releases.ubuntu.com/bionic/ 参考&#xff1a; 设置固定IP地址 https://blog.csdn.net/wowocpp/article/details/126160428 https://www.jianshu.com/p/1d133c0dec9d ubuntu-18.04.6-l…

元数据管理的发展历程你了解吗?元数据管理要克服哪些挑战?

在当今的信息化时代&#xff0c;数据的价值已被广泛认可&#xff0c;而元数据作为描述数据的数据&#xff0c;其作用日益凸显。元数据管理&#xff0c;作为确保数据质量、促进数据共享和提高数据透明度的关键环节&#xff0c;对企业的数据战略至关重要。随着技术的发展&#xf…

C#1.0-11.0所有历史版本主要特性总结

文章目录 前言名词解释主要版本一览表各版本主要特性一句话总结 C# 1.0 (Visual Studio 2002, .Net Framework 1.0)C# 2.0 (Visual Studio 2005, .Net Framework 2.0)C# 3.0 (Visual Studio 2008, .Net Framework 3.0)C# 4.0 (Visual Studio 2010, .Net Framework 4)C# 5.0 (V…

DataWhale - 吃瓜教程学习笔记(三)

学习视频&#xff1a;第3章-对数几率回归_哔哩哔哩_bilibili 西瓜书对应章节&#xff1a; 3.3 对数几率回归 sigmoid函数 极大似然估计建模 信息论 以概率论、随机过程为基本研究工具&#xff0c;研究广义通信系统的整个过程 - 信息熵 &#xff08;信息期望&#xff09; 度…

Windows bat 提取多个目录下的文件,到一个目录

批处理命令 echo off setlocalrem 设置源目录和目标目录 set "sourceDirE:\motrix" set "targetDirE:\新建文件夹"rem 创建目标目录&#xff0c;如果不存在 if not exist "%targetDir%" mkdir "%targetDir%"rem 循环遍历源目录中的所…

TCP:TCP连接的建立与终止

TCP连接的建立与终止 建立连接第一次握手第二次握手第三次握手 终止连接第一次挥手第二次挥手第三次挥手第四次挥手 T C P是一个面向连接的协议。无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。本文将详细讨论一个T C P连接是如何建立的以及通信…

2024年能源电力行业CRM研究报告

中国能源电力行业属于大制造业的重要组成部分&#xff0c;在国民经济中的地位举足轻重。据统计&#xff0c;近十年来能源电力行业的整体投资呈现出增长趋势&#xff0c;尤其是“十四五”期间增长显著&#xff0c;2022年全国主要电力企业共完成投资12470亿元&#xff0c;同比增长…

【乐吾乐2D可视化组态编辑器】连线

1 连线的绘制 1.1 钢笔绘制连线 1.1.1 曲线、线段、直线、脑图曲线 开始&#xff1a;单击左键 暂停&#xff1a;单击右键 或 enter 结束&#xff1a;esc 乐吾乐2D可视化组态编辑器demo&#xff1a;https://2d.le5le.com/ 1.1.2 横线 按下快捷键shift,点击鼠标左键绘制…

101.6k星的后台巨擘:一站式SaaS多租户、商城、CRM、ERP解决方案

RuoYi-Vue Pro,一个丰富优化重构的后台管理系统,为企业提供了一个强大、灵活、易用的解-决方案。 特点 丰富的功能支持:包括RBAC动态权限、数据权限、SaaS多租户、工作流、三方登录、支付、短信等。 现代化的技术栈:基于Spring Boot、MyBatis Plus、Vue & Element,支持…

在UE中创建命名管道之创建UE蓝图类

需求 在实际工作遇到了需要 UE 开发进程间通信相关的需求。 经过思考后选择使用命名管道来实现 。 名词概念 首先什么是进程间通信: 进程间通信&#xff08; Inter-Process Communication&#xff0c;IPC&#xff09;是指在操作系统中&#xff0c;不同进程之间进行数据交换…

大厂面试官问我:Redis内存淘汰,LRU维护整个队列吗?【后端八股文四:Redis内存淘汰策略八股文合集】

往期内容&#xff1a; 大厂面试官问我&#xff1a;Redis处理点赞&#xff0c;如果瞬时涌入大量用户点赞&#xff08;千万级&#xff09;&#xff0c;应当如何进行处理&#xff1f;【后端八股文一&#xff1a;Redis点赞八股文合集】-CSDN博客 大厂面试官问我&#xff1a;布隆过滤…

精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手

知识图谱&#xff08;关系网络&#xff09;可以用简单的形状和线条显示复杂的系统&#xff0c;帮助我们理解数据之间的联系。我们今天将介绍15个很好用的免费工具&#xff0c;可以帮助我们绘制网络图。 NetworkX NetworkX是一个用于处理网络的Python工具。许多人在Python中处…

模型选择、过拟合与欠拟合

一、训练误差与泛华误差 1、在训练时&#xff0c;我们关心的是泛化误差&#xff0c;也就是对新数据的预测 2、训练误差&#xff1a;模型在训练数据上的误差&#xff1b;泛化误差&#xff1a;模型在新数据上的误差 二、验证数据集与测试数据集 1、验证数据集&#xff1a;用于…