【贪心算法Part03】| 1005.K次取反后最大化的数组和、134.加油站、135.分发糖果

目录

🎈LeetCode1005.K次取反后最大化的数组和 

🎈LeetCode134.加油站

🎈LeetCode135.分发糖果

🎈LeetCode1005.K次取反后最大化的数组和 

链接:1005.K次取反后最大化的数组和

给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:

  • 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。

重复这个过程恰好 k 次。可以多次选择同一个下标 i 。

以这种方式修改数组后,返回数组 可能的最大和 。

 

方法一:

直接把最小的一直取反,但是时间复杂度为O(n^2logn)

public int largestSumAfterKNegations(int[] nums, int k) {for(int i=0;i<k;i++){Arrays.sort(nums);nums[0]=-nums[0];    }int sum=0;for(int i=0;i<nums.length;i++){sum+=nums[i];}return sum;}

🎈LeetCode134.加油站

链接:134.加油站

在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。

你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。

给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。

 

方法一: 

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int min=Integer.MAX_VALUE;int curSum=0;for(int i=0;i<gas.length;i++){int temp=gas[i]-cost[i];   //每天的剩余油量curSum+=temp;if(curSum<min){min=curSum;}}if(curSum<0){return -1;   //油量总和小于要用的油}if(min>=0){return 0;   //从0出发油没有断过}// 不是从0出发的情况for(int i=gas.length-1;i>=0;i--){int temp=gas[i]-cost[i];min += temp;if(min>=0){return i;}}return -1;}
}

方法二:

public int canCompleteCircuit(int[] gas, int[] cost) {int curSum=0;int totalSum=0;int result=0;for(int i=0;i<gas.length;i++){curSum+=gas[i]-cost[i];totalSum+=gas[i]-cost[i];if(curSum<0){result=i+1;curSum=0;}}if(totalSum<0){return -1;}return result;}

🎈LeetCode135.分发糖果

链接:135.分发糖果

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。

你需要按照以下要求,给这些孩子分发糖果:

  • 每个孩子至少分配到 1 个糖果。
  • 相邻两个孩子评分更高的孩子会获得更多的糖果。

请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。

 

 

public int candy(int[] ratings) {int[] candys=new int[ratings.length];for(int i=0;i<candys.length;i++){candys[i]=1;}// 从前向后for(int i=1;i<ratings.length;i++){if(ratings[i]>ratings[i-1]){candys[i]=candys[i-1]+1;}}// 从后向前for(int i=ratings.length-2;i>=0;i--){if(ratings[i]>ratings[i+1]){candys[i]=Math.max(candys[i],candys[i+1]+1);}}int result=0;for(int i=0;i<candys.length;i++){result+=candys[i];}return result;}

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

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

相关文章

学习背景和学习规划

为什么要学习大数据相关的技术&#xff1f; 随着工作年限的增加&#xff0c;JAVA已经陪伴我五年有余了&#xff0c;这些年的工作中我能够明显感觉到一些web开发领域的变化。刚开始工作时公司做的项目大多是一些功能单一、用户量极少的web应用&#xff0c;这种项目对技术和性能的…

分享一个唯美雪花界面

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>雪</title><meta name"viewport" content"widthdevice-width, initial-scale1&…

TKDE论文,跑的改的,GPSCVULDETECTOR

Combining Graph Neural Networks With Expert Knowledge for Smart Contract Vulnerability Detection 论文代码GitHub https://github.com/Messi-Q/GPSCVulDetectorpaper https://ieeexplore.ieee.org/abstract/document/9477066/参考IJCAI 21中AME的数据集 https://gith…

中国地图使用心得

中国地图使用心得 注册地图是注册在echarts对象上而非 自己构建的echarts dom上、。 请求本地json文件 ​ vue项目的public打包时不会动&#xff0c;所以线上和本地地址直接指向了public同级目录&#xff0c;请求时直接相对路径 绘制中国地图时&#xff0c;如何在各个省会地方…

旅游卡系统加盟代理软件开发

旅游行业的不断发展&#xff0c;越来越多的旅行社开始推出各种优惠卡来吸引游客。而随着智能手机的普及&#xff0c;开发一款旅行社优惠卡APP软件成为了一种必然的趋势。 该软件的主要功能是提供旅行社的各种优惠卡信息&#xff0c;包括优惠卡的种类、价格、使用范围、有效…

img标签的onerror事件

img标签中的src图片加载失败&#xff0c;原来的图片位置会出现一个碎片图标&#xff0c;用户体验会下降。 通过百度&#xff0c;可以给img标签加背景图片&#xff0c;代码如下&#xff1a; .headLogo img{display: block;width: 270px;height: 60px;background: url(../image…

无极低代码,免费工具在线实用工具分享

在当今数字化的时代&#xff0c;我们需要尽可能地减少手动操作&#xff0c;提高工作效率。这就是为什么我们需要一些在线工具来帮助我们完成一些繁琐的任务。以下是一些无极低代码网集成的在线工具&#xff0c;可以帮助您更快、更轻松地完成任务。 项目管理 项目周期计算&…

docker+mongodb设置数据库的账号和密码

1、在docker宿主机构建mongodb数据持久化目录 # 数据文件 mkdir -p /usr/local/mongodb/data# 日志文件 mkdir -p /usr/local/mongodb/log2、拉取镜像, 选择官方版本&#xff08;亲测16.x版本的mongodb不可用&#xff0c;可安装指定版本&#xff09; docker search mongo do…

ARP解析MAC地址的全过程(ARP的工作机制)

目录 ARP解析MAC地址的过程&#xff1a; 源码等资料获取方法 以太网环境下&#xff0c;同一个网段的主机之间需要互相知道对方的MAC地址&#xff0c;才能访问。 TCP/IP协议栈从上层到下层的封装过程中&#xff0c;第三层封装需要知道目的IP&#xff0c;第二层封装需要知道目…

Java 设计模式——迭代器模式

目录 1.概述2.结构3.案例实现3.1.抽象迭代器3.2.具体迭代器3.3.抽象聚合3.4.具体聚合3.5.测试 4.优缺点5.使用场景6.JDK 源码解析——Iterator 1.概述 迭代器模式 (Iterator Pattern) 是一种行为型设计模式&#xff0c;它提供一种顺序访问聚合对象&#xff08;如列表、集合等&…

使用亚马逊(AWS)云服务在S3上实现图片缩放功能(CloudFront/S3[AccessPoint/LambdaAccessPoint])

亚马逊云服务中的S3对象存储功能和国内阿里云的oss对象存储使用基本一致。但是涉及到存储内容处理时&#xff0c;两家有些差别。 比如&#xff1a;对于云存储中的图片资源&#xff0c;阿里云比较人性化对于基本的缩放裁剪功能已经帮我们封装好了&#xff0c;只需要在url地址后…

python正则+多线程(代理)+线程池+协程

正则表达式 常用元字符 . 匹配除换行符以外的任意字符 \w 匹配字幕或数字或下划线 \s 匹配任意空白字符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 ^ 匹配字符串的开始 # 开发常用 $ 匹配字符串的结尾\W 匹配非字母或数字或下划线 \D 匹配非数字 \S 匹配非空白符 a|b …

【Express.js】全局变量与配置文件

全局变量与配置文件 通常我们会将一些项目的配置信息写在一个文件内&#xff0c;然后读入内存并使用。在 express 中使用全局变量有多种方案&#xff0c;我们一起看看有哪些常用的方案 准备工作 拷贝第一节的HelloWorld项目 准备一个Resp.js模块&#xff1a; module.expor…

Mongodb 对嵌套文档数组进行查询操作

查询非嵌套文档数组 非嵌套文档的数组&#xff0c;数组由数字、字符串等元素组成。 以下方法对数组字段进行查询操作的示例&#xff0c;包括对数组匹配查询&#xff0c;元素的增、删、改操作&#xff0c;空数组、非空数组查询等。 测试数据 连接到 mongodb 数据库&#xff0…

Bean 作用域与生命周期

Bean 作用域与生命周期 ​ 对于 Spring 来说&#xff0c;核心操作对象就是存和取 Bean &#xff0c;接下来就 Bean 的作用域与生命周期进行探讨。 文章目录 Bean 作用域与生命周期一、作用域的定义1.1、Bean 的6种作用域1.2、Bean作用域设置方法 二、Bean 的生命周期2.1、Bean…

postgresql还原bak

1、第一步肯定是要新建自己还原的目标数据库&#xff0c;例如&#xff1a; 2、进入postgresql的安装目录下的bin目录下 然后地址栏输入cmd进入命令 输入以下 psql -h localhost -U postgres -p 5432 -d SamsinoYardStandard_karamay -f "D:\desktop\zk\20230628.bak&quo…

verilog实现数码管静态显示

文章目录 verilog实现数码管静态显示一、任务要求二、实验代码三、仿真代码四、仿真结果五、总结 verilog实现数码管静态显示 一、任务要求 六个数码管同时间隔0.5s显示0-f。要求&#xff1a;使用一个顶层模块&#xff0c;调用计时器模块和数码管静态显示模块。 二、实验代码…

将Spring Boot项目打包部署到阿里云linux服务器

首先 你要保证自己的服务器上有java环境 如果没有可以参考我的文章 linux服务器中安装java JDK1.8版本 然后 我们打开我们的Spring Boot项目 双击 package 生命周期进行打包 打包完成之后 我们找到 target 下面会有一个jar包 然后 我们右键它 如下图操作 系统就会帮你打开它所…

OpenCV for Python 学习第四天 :通道的获取与合并

上一篇博客&#xff0c;我们学习了如何通过更快的item()和itemset()的方法访问图片&#xff0c;以及了解了图像的兴趣位置的获取方法&#xff0c;那么今天&#xff0c;我们将学习通道的处理方法&#xff0c;通过通道的拆分和合并的实例&#xff0c;让大家更好的了解咱们有关于B…

STM32知识合集

目录 STM&#xff1a; GPIO&#xff1a; 串口通信协议&#xff1a; 1.USART&#xff1a; 2.I2C&#xff1a; 3.Modbus 4.RS232 5.RS485&#xff1a; SPI通信协议 万用表使用&#xff1a; 中断系统&#xff1a; NVIC&#xff1a; EXTI &#xff1a; 时钟系统&…