Day34 贪心算法 part03 1005. K 次取反后最大化的数组和 134. 加油站 135. 分发糖果
贪心算法 part03 1005. K 次取反后最大化的数组和 134. 加油站 135. 分发糖果
1005. K 次取反后最大化的数组和
思路
- 第一步,从前向后遍历,遇到负数将其变为正数,同时K–
- 第二步:如果K还大于0,那么反复转变数值最小的元素,将K用完
- 第三步:求和
class Solution {
public:static bool Compare(int& a, int& b){return abs(a) > abs(b);}int largestSumAfterKNegations(vector<int>& nums, int k) {sort(nums.begin(),nums.end(),Compare); //绝对值排序for(int i = 0; i<nums.size();i++){if(nums[i]<0 && k>0){ //第一步贪心,取绝对值最大的数确保为正数nums[i] = -nums[i];k--;}}if(k%2==1) nums[nums.size()-1] *= -1; //第二步贪心,如果k还有剩余,进行绝对值最小数的操作int result = 0; //第三步,取结果for (int a : nums) result += a; return result;}
};
134. 加油站
方法一(暴力)
leetcode超时(35/40)
class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {for(int i = 0; i<gas.size(); i++){int rest = gas[i]-cost[i]; //记录当天用油差值int Index = (i+1)%gas.size(); //方便下面的while进行判断while(rest>0 && Index!=i){rest+=gas[Index] - cost[Index];Index = (Index + 1) % cost.size();}if(Index ==i && rest >=0) return i; //返回当前i}return -1;}
};
方法二(贪心)
class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int curSum = 0;int totalSum = 0;int start = 0;for (int i = 0; i < gas.size(); i++) {curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if (curSum < 0) { // 当前累加rest[i]和 curSum一旦小于0start = i + 1; // 起始位置更新为i+1curSum = 0; // curSum从0开始}}if (totalSum < 0) return -1; // 说明怎么走都不可能跑一圈了return start;}
};
135. 分发糖果
class Solution {
public:int candy(vector<int>& ratings) {vector<int> candyVec(ratings.size(), 1);for(int i = 1; i<ratings.size();i++){ //从前往后if(ratings[i-1]<ratings[i]) candyVec[i] = candyVec[i-1] +1;}for(int i = ratings.size()-1; i>=1; i--){ //从后往前if(ratings[i] <ratings[i-1]) candyVec[i-1] =max(candyVec[i-1],candyVec[i]+1);}int result = 0;for (int i = 0; i < candyVec.size(); i++) result += candyVec[i];return result;}
};
相关文章:
Day34 贪心算法 part03 1005. K 次取反后最大化的数组和 134. 加油站 135. 分发糖果
贪心算法 part03 1005. K 次取反后最大化的数组和 134. 加油站 135. 分发糖果 1005. K 次取反后最大化的数组和 思路 第一步,从前向后遍历,遇到负数将其变为正数,同时K–第二步:如果K还大于0,那么反复转变数值最小的…...
最全对象存储(云盘)挂载本地主机或服务器
1.对象存储介绍 1.1 分类 分布式存储的应用场景相对于其存储接口,现在流行分为三种: 块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,块存储一般…...
24校招,江淮汽车软件测试工程师技术面+HR面
前言 记录一下楼主的面试经历,希望对后来者有用 时间:15min 平台:腾讯会议 过程 技术面试 自我介绍 为啥不考研 实习收获 你有做过软件开发的工作吗? 除了Java和Python,还会其他的语言吗? 学过C吗…...
从零开始学习Zeppelin:大数据可视化分析的交互式开发系统!
介绍:Apache Zeppelin是一个基于Web的交互式开发系统,主要用于进行大数据可视化分析。其核心概念是notebook,所有的操作都可以在notebook中完成。Zeppelin提供了一套非常全面的数据分析解决方案,支持数据采集、数据发现、数据分析…...
VCG 曲面重建之滚球算法
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 滚球算法(BPA)是一种与alpha形状相关的曲面重建方法。直观地想象一个具有给定半径的3D球,我们把它扔在点云上。如果它击中任何3个点(并且它没有穿过这3个点),它就创造了一个三角形。然后,算法从现有三角形的边缘…...
为什么使用双token实现无感刷新用户认证?
单token机制 认证机制:对与单token的认证机制在我们项目中仅使用一个Access Token的访问令牌进行用户身份认证和授权的方案处理。 不足之处: 安全性较低(因为只有一个token在客户端和服务器端之间进行传递,一目Acess Token被截获或者被泄露…...
论文阅读 Self-Supervised Burst Super-Resolution
这是一篇 ICCV 2023 的文章,主要介绍的是用自监督的方式进行多帧超分的学习 Abstract 这篇文章介绍了一种基于自监督的学习方式来进行多帧超分的任务,这种方法只需要原始的带噪的低分辨率的图。它不需要利用模拟退化的方法来构造数据,而且模…...
Spring+SpringMVC+Mybatis进行项目的整合
Spring SpringMVCM Mybatis 整合 一、 通过idea创建maven工程 二、 引入依赖项以及导入mybatis逆向工程的插件 将如下的文件替换所在工程的pom文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4…...
vue3 实现简单计数器示例——一个html文件展示vue3的效果
目的:作为一个新手开发,我想使用 Vue 3 将代码封装在 HTML 文件中时,进行界面打开展示。 一、vue计数示例 学了一个简单计数器界面展示,代码如下: <!DOCTYPE html> <html lang"en"><head&…...
面试经典150题(88-89)
leetcode 150道题 计划花两个月时候刷完,今天(第四十四天)完成了2道(88-89)150: 88.(22. 括号生成) 题目描述: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效…...
【设计模式-3.3】结构型——享元模式
说明:说明:本文介绍设计模式中结构型设计模式中的,享元模式; 游戏地图 在一些闯关类的游戏,如超级玛丽、坦克大战里面,游戏的背景每一个关卡都不相同,但仔细观察可以发现,其都是用…...
【征服redis6】Redis的内存淘汰详解
目录 1.redis的基本策略 2.Redis中的缓存淘汰策略 3.Redis内存不足的情况 4.几种淘汰策略的实现原理 5.项目实践与优化策略 5.1 配置案例 5.2 项目优化策略参考 数据库存储会将数据保存到磁盘中,而Redis的核心数据是在内存中的,而Redis本身主要用来…...
多文件转二维码的两种方式,有兴趣的了解一下
多个文件能一键生成二维码吗?二维码是现在很多人用来展示文件内容的一种手段,在制作二维码图片之后,其他人扫码就可以查看文件或者下载文件,有效的提升文件获取的效率。一般情况下,文件二维码分为多个文件生成一个二维…...
uniapp APP接入Paypal
1. 登录paypal开发者中心, 2. 选择 Apps & Credentials 点击 Create App创建应用,创建后点击编辑按钮,如图: 3. 进入应用详情,勾选Log in with PayPal点击 Advanced Settings 添加return URL等信息并保存。如图&a…...
QT-贪吃小游戏
QT-贪吃小游戏 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "Snake.h" #include "Food.h" #include "Stone.h" #include "Mushroom.h" #include "Ai.h" #include "Game.h" #inclu…...
HubSpot:如何设计和执行客户旅程?
在当今数字化时代,企业成功的关键之一是建立并优化客户旅程。HubSpot作为一体化市场营销平台,通过巧妙设计和执行客户旅程,实现了个性化决策,关键节点的精准引导,为企业带来了数字化转型的引领力。 一、HubSpot是如何设…...
【Go学习】macOS+IDEA运行golang项目,报command-line-arguments,undefined
写在前面的话:idea如何配置golang,自行百度 问题1:通过idea的terminal执行go test报错 ✘ xxxxxmacdeMacBook-Pro-3 /Volumes/mac/.../LearnGoWithTests/hello go test go: go.mod file not found in current directory or any parent …...
优先看我的博客:工控机 Ubuntu系统 输入密码登录界面后界面模糊卡死,键盘鼠标失效(不同于其他博主的问题解决方案,优先看我的博客。)
工控机Ubuntu 输入密码登录界面后界面模糊卡死,键盘鼠标失效 (不同于其他博主的问题解决方案,工控机Ubuntu的系统 优先看我的博客。) 系统版本:ubuntu18.04 主机:工控机 应用场景:电力系统巡…...
SAP 中的外部接口:预扣税
文章目录 1 Introduction2 implementation3 Summary 1 Introduction We use BP create WTAX_TYPE ,I don’t find a bapi. We will update for it . We will impement WTax type , WTax code ,Subject in the ‘BP’. 2 implementation UPDATE lfbw SET witht gs_alv-wit…...
代码随想录算法训练营第二十三天| 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
669. 修剪二叉搜索树 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 解题思路:如果当前结点小于所给区间,那该节点及其左子树肯定不符合条件,返回其右子树作为上一结点子树;反之…...
5分钟上手TegraRcmGUI:Windows平台最简单的Switch注入工具终极指南
5分钟上手TegraRcmGUI:Windows平台最简单的Switch注入工具终极指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是专为Nintendo S…...
ViGEmBus虚拟游戏控制器驱动:从入门到精通的完整指南
ViGEmBus虚拟游戏控制器驱动:从入门到精通的完整指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是Windows系统上强大的虚拟游戏控制…...
直线模组选型别再“先选电机“了!导程才是起点(附正向推导五步法)
引言:一个高频"翻车"现场在直线模组(丝杆模组)选型中,有个环节经常出现逆向翻车——工程师先选好了电机,再去配丝杆导程,结果发现:❌ 速度上不去❌ 推力不够大❌ 电机严重发热问题的根…...
用STM32F103C8T6驱动Ra-01SC模组实现点对点通信(附完整代码与接线图)
STM32与Ra-01SC模组实战:从零搭建LoRa点对点通信系统 在物联网和远程监测领域,LoRa技术以其低功耗、远距离的特性成为无线通信的热门选择。Ra-01SC模组作为一款高性价比的LoRa模块,配合STM32F103C8T6这款经典MCU,能够快速构建稳定…...
别再死磕论文了!用PyTorch复现StyleGAN,从代码层面理解风格混合与解耦
从零构建StyleGAN:用PyTorch代码揭示风格混合的奥秘 当你在浏览社交媒体时,是否曾被那些由AI生成的逼真虚拟人脸所震撼?这些图像背后往往隐藏着一个强大的生成对抗网络——StyleGAN。与传统的GAN不同,StyleGAN能够精确控制生成图像…...
CREO新手避坑指南:从拉伸到抽壳,这10个建模细节90%的人都踩过
CREO新手避坑指南:从拉伸到抽壳,这10个建模细节90%的人都踩过 刚接触CREO三维建模时,许多初学者会被软件强大的功能所吸引,却往往在基础操作上反复踩坑。本文将从实际案例出发,剖析那些看似简单却暗藏玄机的建模细节&a…...
音视频开发避坑:YUV420P图像处理时Stride不对齐,你的内存拷贝为啥总出错?
音视频开发避坑:YUV420P图像处理时Stride不对齐,你的内存拷贝为啥总出错? 在音视频开发中,YUV420P格式因其高效的存储方式被广泛使用,但许多开发者在处理这类图像时,常常会遇到内存拷贝错误、程序崩溃或画面…...
手把手教你用STM32F103C8T6驱动NRF24L01模块(附完整代码与避坑指南)
STM32F103C8T6与NRF24L01无线通信实战:从硬件对接到代码调试全解析 在物联网和智能硬件快速发展的今天,无线通信技术已成为嵌入式系统设计中不可或缺的一环。NRF24L01作为一款性价比极高的2.4GHz无线收发模块,配合STM32F103C8T6这类主流微控制…...
RoboMaster云台控制实战:基于大疆C板与GM6020的双环PID调参心得与角度控制优化
RoboMaster云台控制实战:基于大疆C板与GM6020的双环PID调参心得与角度控制优化 1. 从电机转动到精准控制的技术跃迁 当GM6020电机第一次在开发板上转动起来时,那种成就感往往会让初学者兴奋不已。但很快就会发现,让电机简单地转动与实现云台的…...
金融机构 一般采用是机械硬盘还是固态硬盘
金融机构现在普遍采用的是以固态硬盘(SSD)为主、机械硬盘(HDD)为辅的混合架构。可以说,一个全面向全闪存(全SSD) 演进的趋势正在所有主流银行和券商中发生。可以看一个非常直观的例子࿱…...
