day34算法训练|贪心算法

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

两次贪心算法思路

1. 数组中有负数时,把绝对值最大的负数取反

2. 数组全为非负数时,一直取反最小的那个数

步骤:

  • 第一步:将数组按照绝对值大小从大到小排序,注意要按照绝对值的大小
  • 第二步:从前向后遍历,遇到负数将其变为正数,同时K--
  • 第三步:如果K还大于0,那么反复转变数值最小的元素,将K用完
  • 第四步:求和

class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);for(int i=0;i<nums.length&&nums[i]<0&&k>0;i++,k--){nums[i]=-nums[i];}int res = 0, min = Integer.MAX_VALUE;for(int num:nums){res+=num;min = Math.min(min,num);}return res - (k%2)*min*2;}
}

134. 加油站

start=i+1 发生在数组最后,是否会产生数组溢出的问题:

当发生这种情况说明,肯定是直接返回-1了,不需要考虑溢出问题:来源视频评论区

反正法:来源:代码随想录

那有没有可能 [0,i] 区间 选某一个作为起点,累加到 i这里 curSum是不会小于零呢? 如图:

如果 curSum<0 说明 区间和1 + 区间和2 < 0, 那么 假设从上图中的位置开始计数curSum不会小于0的话,就是 区间和2>0。

区间和1 + 区间和2 < 0 同时 区间和2>0,只能说明区间和1 < 0, 那么就会从假设的箭头初就开始从新选择其实位置了。与同一逻辑下等到区间和2之后才转变起始位置相矛盾

// 解法2
class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum = 0;int totalSum = 0;int index = 0;for (int i = 0; i < gas.length; i++) {curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if (curSum < 0) {index = (i + 1) % gas.length ; curSum = 0;}}if (totalSum < 0) return -1;return index;}
}

135. 分发糖果

先全部判断左边的关系

第二次全部判断右边的关系(此时需要从后往前遍历,因为 rating[5]与rating[4]的比较 要利用上 rating[5]与rating[6]的比较结果)

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

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

相关文章

基于YOLOv8深度学习的智能小麦害虫检测识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

VMware下安装win7

参考&#xff1a; VMware下安装win7教程_vm安装win7-CSDN博客 ps:我使用的就是上面这位博主的第一个镜像。 【虚拟机安装Win7】5分钟带你学会通过VMware虚拟机安装Windows 7&#xff0c;特别是各省份专升本考试需要考查Windows 7计算机系统的宝子_哔哩哔哩_bilibili

CAS的详细介绍

CAS&#xff08;Compare and Swap&#xff09;是一种并发算法&#xff0c;通常用于解决多线程环境下的数据竞争问题。CAS的基本思想是通过在操作变量时&#xff0c;先比较当前值和期望值是否相等&#xff0c;如果相等则更新为新的值&#xff0c;否则不进行任何操作。 CAS操作包…

脚本执行权限——chmod +x、chmod -x

linux系统下&#xff0c;不同类型的文件用不同颜色表示&#xff1a; 蓝色表示目录; 绿色表示可执行文件&#xff0c;可执行的程序; 红色表示压缩文件或包文件; 浅蓝色表示链接文件; 灰色表示其它文件; 红色闪烁表示链接的文件有问题了 黄色表示设备文件 当执行chmod x test.sh…

Springboot参数校验复制即用

引入依赖 <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version> </dependency> <dependency><groupId>org.hibernate.validator</groupI…

JavaSE 排序

目录 1 概念1.1 排序1.2 稳定性 2 常见基于比较排序算法总览3 插入排序3.1 直接插入排序3.1.1 思想3.1.2 实现3.1.3 性能分析 3.2 折半插入排序3.2.1 思想3.2.2 实现3.2.3 性能分析 3.3 希尔排序3.3.1 思想3.3.2 实现3.3.3 性能分析 4 选择排序4.1 选择排序4.1.1 思想4.1.2 实现…

神奇的数据恢复算法

今天码哥给大家带来一种数据备份与修复的技术——里德所罗门编码。 里德所罗门编码可是应用场景很多&#xff0c;例如我们耳熟能详的RAID&#xff08;磁盘阵列&#xff09;&#xff0c;又例如在UDP传输中降低丢包导致的数据缺失的情况等等。 什么是里德所罗门编码 这里&…

官网 Navicat Premium 历史版本官方下载地址

Navicat Premium 客户端命名规则&#xff0c;是 navicat大版本(2位)小版本(1位)_premium_cs_x32或者64位的系统.exe&#xff0c;比如&#xff1a; https://download.navicat.com/download/navicat162_premium_cs_x64.exe 表示大版本为16&#xff0c;小版本为2&#xff0c;64位系…

随时随地刷题题库小程序源码系统+完整代码包+安装部署教程

互联网的普及和在线教育的发展&#xff0c;越来越多的人开始利用碎片时间进行学习。为了满足这一需求&#xff0c;随时随地刷题题库小程序应运而生。该小程序提供了一个便捷的刷题平台&#xff0c;用户可以在任何时间、任何地点进行刷题练习&#xff0c;提高自己的学习效率。 …

C盘满了?这里有释放空间有效方案!

一、需要释放小空间 方法一&#xff0c;下载火绒安全软件&#xff0c;点击垃圾清理 方法二&#xff0c;手动清理&#xff1a; 1.左下角搜索"添加或删除" 2.左下角搜索"存储设置" 3.【我的电脑】-【C盘】-右键【属性】-【磁盘清理】 4.以下位置的不需要…

局域网其他pc如何访问宿主机虚拟机IP?

文章目录 背景贝瑞蒲公英设置虚拟机网络连接测试 背景 使用贝瑞蒲公英异地组网&#xff0c;将家里的pc作为pgsql服务器在公司使用&#xff0c;但是虚拟机的ip和端口访问不了 贝瑞蒲公英 设置虚拟机网络 就是添加端口转发规则 连接测试 公网内其他pc连接测试 可以看到已经连接成…

西南科技大学数据库实验八(自定义函数)

一、实验目的 1.掌握用户自定义变量; 2.熟悉运算符与表达式; 3.掌握begin-end语句块; 4.掌握重置命令结束标记。 5.掌握创建自定义函数的语法格式以及函数的创建与调用。 二、实验任务 1.创建学生表Student,由学号(Sno)、姓名(Sname)组成,记作:Student(Sno,Sname),…

学习Java第74天,Ajax简介

什么是ajax AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 不是新的编程语言&#xff0c;而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下&#xff0c;可以与服务器交换数据并更新部分网页…

freetype位图制作的理论与用法详解,一篇文章学会freetype

文档下载&#xff1a;freetype位图制作的理论与用法详解&#xff0c;一篇文章学会freetype 该文档详细讲述了 各种格式的字符串&#xff08;中文&#xff0c;英文&#xff09;编码&#xff0c;怎么使用freetype制作成可以在lcd上显示的位图&#xff0c;并且如何将位图渲染到LCD…

ERP真的“烂”吗?为什么有些公司上了ERP效率反而更低?

ERP是由美国Gartner Group咨询公司首先提出的国际上最先进的企业管理模式之一&#xff0c;也是企业信息化集成的最佳解决方案。 ERP到底是什么&#xff1f; ERP的概念 先打个比方。 把ERP理解成手机。 使用通讯类APP和同事、朋友、亲人交流。 使用购物类APP购买生活工作中需…

一文详细介绍Ehcache

title: Ehcache 快速入门 categories: 编程 Java 中间件 缓存 tags: Java 中间件 缓存 Ehcache abbrlink: 2720adf1 date: 2022-02-17 22:34:30 permalink: /pages/c4647d/ Ehcache 快速入门 EhCache 是一个纯 Java 的进程内缓存框架&#xff0c;具有快速、精干等特点&#xff…

中国九大农业区划

数据名称&#xff1a;中国九大农业区划 数据时间&#xff1a;2012年 数据空间位置:全国 数据空间分辨率&#xff1a;1:100万 数据格式&#xff1a;shp 数据坐标系&#xff1a;WGS1984 数据简介&#xff1a;农业区划是管理和指导农业生产的重要手段。我国农业区划种类较多…

如何在公网环境使用固定域名远程访问内网BUG管理系统协同办公

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

锐捷 | AP和AC 系列 默认IP地址和console密码,enable密码

1、无线设备的默认地址 &#xff1a; AC&#xff1a;10.x版本没有默认地址&#xff0c;11.x新版本默认地址192.168.110.1。 AP&#xff1a;默认地址192.168.110.1&#xff08;10.x 173487之前的P2版本是192.168.1.1&#xff09; WALL-AP或者有第二个LAN口的AP&#xff0c;胖…

评分卡在数字化时代的应用与比较,谁是最强规则引擎?

在数字化时代&#xff0c;规则引擎在各种业务场景中发挥着越来越重要的作用。评分卡作为规则引擎的一个重要应用&#xff0c;被广泛应用于员工KPI考核、业务评估、授信额度计算等等场景。本文引用了奔跑的小武哥的内容&#xff0c;对市面上的几个规则引擎进行对比展示&#xff…