当前位置: 首页 > news >正文

代码随想录算法训练营第三十五天|1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

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

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

踩坑:没有

思路:数组里有正有负,肯定先对负数进行取反,且从小开始。如果所有负数都为正后还可以取反,则如果此时次数为奇数,将最小整数取反,如果为偶数,可以直接求和。

代码:

class Solution {
public:int largestSumAfterKNegations(vector<int>& nums, int k) {sort(nums.begin(), nums.end());for(int i = 0; i < nums.size(); i++){if(k != 0){if(nums[i] < 0){nums[i] = -nums[i];k--;}}else break;}sort(nums.begin(), nums.end());if(k % 2 != 0) nums[0] = -nums[0];int result = 0;for(int i = 0; i<nums.size(); i++){result = result + nums[i];}return result;}
};

LeetCode 134.加油站

题目链接:134.加油站

踩坑:看了视频

思路:感觉有点像钻了数学的空子,因为第一:所有gas-cost的差值的和小于0的话不会有解。第二:除了第一种情况,其他情况一定有解。所以解题过程就可以表示为如果当前站点会使计划失败(剩余的油为负数),那么只能将下一个站点作为起点。但是其中还是有很多隐藏逻辑以及节省的步骤可以辨析的

代码:

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){start = i+1;curSum = 0;}}if(totalSum < 0) return -1;return start;}
};

LeetCode 135.分发糖果

题目链接:135.分发糖果

踩坑:以为分开考虑是以最小值为中心向左向右。

思路:从左向右遍历处理右孩子大于左孩子的情况,从右向左遍历处理左孩子大于右孩子的情况。初始的孩子分配一个糖果。最后取两种情况下的较大值,因为较小值肯定不满足另一种情况,至于为什么较大的值肯定满足两种情况并没有解释。。。

代码:

class Solution {
public:int candy(vector<int>& ratings) {vector<int> result(ratings.size(), 0);vector<int> t(ratings.size(), 0);result[0] = 1;t[t.size()-1] = 1;for(int i = 1; i < ratings.size(); i++){if(ratings[i] > ratings[i-1]) result[i] = result[i-1] + 1;else result[i] = 1;}for(int i = ratings.size()-2; i >= 0; i--){if(ratings[i] > ratings[i+1]){result[i] = max(result[i], t[i+1] + 1);t[i] = t[i+1] + 1;}else t[i] = 1;}int sum = 0;for(int i: result) sum += i;return sum;}
};

相关文章:

代码随想录算法训练营第三十五天|1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

LeetCode 1005.K次取反后最大化的数组和 题目链接&#xff1a;1005.K次取反后最大化的数组和 踩坑&#xff1a;没有 思路&#xff1a;数组里有正有负&#xff0c;肯定先对负数进行取反&#xff0c;且从小开始。如果所有负数都为正后还可以取反&#xff0c;则如果此时次数为奇…...

鸿蒙开发HarmonyOS Next 网络框架retrofit 封装 viemodel使用

新手刚开始学习harmonyos开发&#xff0c;之前搞安卓开发习惯使用retrofit,结果在三方库中还真搜到了&#xff0c;然后就模拟学习一下。有不对的地方请指点一下。新手新手 oh-package.json5 引入库 retofit 需要使用2.0.1-rc.0 以上版本&#xff0c;修复了retrofit发送网络请…...

什么是SpringMVC

StringMvc简介 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来&#xff1a;...

【PowerDesigner】PDM生成建表脚本

目录 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 &#x1f30d;1.2 PowerDesigner使用环境 &#x1f30a;2. PDM生成建表脚本 &#x1f30a;3. 研究心得 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 主要使用PowerDesigne…...

React实现在线预览word报告/本地选择报告预览

标题使用的核心技术点是docx-preview&#xff0c;读取到文件的File对象&#xff0c;用File去做文件展示&#xff0c;这里是才用将文件转base64字符串存储到localStorage中 在线预览word报告且包含word样式 下载需要使用的min.js文件进项目的public目录中&#xff08;上zip已包…...

计算机哈佛架构、冯·诺依曼架构对比

哈佛架构和冯诺依曼架构是两种不同的计算机系统架构&#xff0c;它们在存储器组织方式上有着显著的区别。下面是它们的原理、优缺点的对比以及一些常见的 MCU 采用的架构&#xff1a; 哈佛架构&#xff1a; 原理&#xff1a;哈佛架构将指令存储器&#xff08;程序存储器&#x…...

单片机串口发送为空中断和发送完成中断有什么区别?

单片机串口发送的空中断和发送完成中断在触发条件和功能上存在明显的区别。以下是关于这两种中断的详细解释&#xff1a; 【发送为空】中断&#xff08;Transmit Data Register Empty Interrupt&#xff09;&#xff1a; 触发条件&#xff1a;当发送数据寄存器&#xff08;TDR…...

css特效:对多个tag标签实现模拟地球仪特效

要实现对多个<a>标签&#xff08;比如链接&#xff09;的模拟地球仪特效和鼠标跟随特效&#xff0c;你可以使用CSS和一点点JavaScript来完成。下面是一个基本的示例代码&#xff1a;HTML代码&#xff1a; <!DOCTYPE html> <html lang"en"> <h…...

【2024Python教程】Python文件打包成exe,如果有图片怎么打包?有手就会的超简单教程

目录 pyinstaller模块打包exe&#xff08;无图片或其他文件打包版&#xff09; 第一步 安装pyinstaller模块&#xff1a; 第二步 找到需要打包的主程序文件夹 第三步 打包exe文件 第四步 确认exe文件是否可以打开 pyinstaller模块打包exe&#xff08;有图片打包版--方法一…...

mac环境基于llama3和metaGPT自动开发2048游戏

1.准备虚拟环境 conda create -n metagpt python3.9 && conda activate metagpt 2.安装metagpt pip install --upgrade metagpt 3.初始化配置文件 metagpt --init-config 4. 安装llama3 5. 修改配置文件 6.让metegpt自动开发2048游戏 7.经过多轮迭代&#xff0c;最终…...

这些Linux知识可不是靠背就会的!

在信息技术日新月异的今天&#xff0c;Linux以其开源、稳定、高效的特性&#xff0c;逐渐成为了众多专业人士的首选操作系统。然而&#xff0c;关于Linux知识的学习&#xff0c;却常常陷入一个误区——许多人认为&#xff0c;掌握Linux就是死记硬背各种命令和参数。这种观念&am…...

openlayers 绘图功能,绘制多边形,draw组件的使用,一个简单的需求引发的思考(一)

1 需求 使用openlayers绘图功能绘制多边形 2 分析 主要是openlayers中draw功能的使用&#xff0c;感觉比较简单&#xff0c;祖传CV大法搞起来 3 实现 为了方便&#xff0c;就不加载底图了&#xff0c;直接使用绘制功能 2.1 简单实现 <template><div id"ma…...

【Flutter】 TextField限制长度时, 第三方手写输入法、ios原始拼音输入法输入被吞问题

问题描述 TextField限制长度时&#xff0c; 当你的输入字符长度已经到了最大值-1时&#xff0c;使用第三方手写输入法或者ios原生拼音输入法输入liang&#xff08;什么拼音都行&#xff0c;这里只是举例&#xff09;&#xff0c;输到i那么li都会消失。 原因分析 这是因为第三…...

快递一键查询,只需快递单号,轻松掌握全程物流信息,让您的包裹追踪无忧!

在快节奏的现代生活中&#xff0c;快递已经成为我们生活中不可或缺的一部分。无论是网购的宝贝、亲朋好友寄来的礼物&#xff0c;还是工作中的紧急文件&#xff0c;快递都承载着我们的期待和需要。然而&#xff0c;面对众多的快递公司和复杂的查询流程&#xff0c;如何快速、准…...

【Java探索之旅】继承结构 继承和组合 protected final

文章目录 &#x1f4d1;前言一、继承1.1 继承关系的代码块1.2 protected关键字1.3 继承方式1.4 final关键字1.5 继承与组合 &#x1f324;️全篇总结 &#x1f4d1;前言 在面向对象编程中&#xff0c;继承是一种重要的概念&#xff0c;它允许我们创建一个新类&#xff0c;从现有…...

Ubuntu20.04-SLAM软件安装

目录 安装环境安装问题1.Ubuntu20.04在T440p上的安装问题1.1 安装后提示"x86/cpu:VMX(outside TXT) disabled by BIOS"1.2 ACPI Error:Needed type[Reference],found [Integer] 等错误1.3 ima: Error Communicating to TPM chip1.4 locate命令的安装 2.中文输入法-go…...

OSI七层网络参考模型

一、物理层 我们要发送出去的数据在计算机里只不过是无数的0和1&#xff0c;0或1就叫做比特&#xff0c;物理层就是把这些比特用不同的媒介传输出去&#xff0c;可以用电、光或者其他形式的电磁波来表示和传输信号&#xff0c;数据从网络接口出去以后&#xff0c;会经过不同的网…...

RAG与知识库搭建

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…...

MySQL提权之UDF提权

1、前言 最近遇到udf提权&#xff0c;几经周折终于搞懂了。感觉挺有意思的&#xff0c;渗透思路一下子就被打开了。 2、什么是udf提权 udf 全称为user defined function&#xff0c;意思是用户自定义函数。用户可以对数据库所使用的函数进行一个扩展&#xff08;windows利用…...

【设计模式】结构型设计模式之 组合模式

介绍 这里的组合模式&#xff0c;与之前的设计模式中的"组合关系"完全是两码事&#xff0c;这里的组合模式主要用来处理结构为树形的数据。 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你将对象组合成树状结构来表示…...

DecepGPT Schema-Driven Deception Detection with Multicultural Datasets and Robust Multimodal Learnin

DecepGPT: Schema-Driven Deception Detection with Multicultural Datasets and Robust Multimodal Learning Authors: Jiajian Huang, Dongliang Zhu, Zitong YU, Hui Ma, Jiayu Zhang, Chunmei Zhu, Xiaochun Cao Deep-Dive Summary: DeepGPT: 基于模式驱动的多文化数据集…...

共享文件是谁删除的?谁删了那个文件?一次“误删事件”背后的思考

上周&#xff0c;公司设计部的一位主管在准备客户提案时&#xff0c;突然发现关键素材文件夹不见了。那里面是整个团队近两周的工作成果——图片、方案、视频文件应有尽有。大家在共享目录里翻来覆去找了半天&#xff0c;最后只得到一个模糊的解释&#xff1a;“可能是谁误删了…...

Cobalt项目文件下载异常问题分析与解决方案:快速排查与修复指南

Cobalt项目文件下载异常问题分析与解决方案&#xff1a;快速排查与修复指南 Cobalt是一款高效友好的开源媒体下载工具&#xff0c;支持YouTube、TikTok、Instagram等30多个平台的视频音频下载。在使用过程中&#xff0c;用户可能会遇到各种下载异常问题。本文将详细分析Cobalt…...

pdf2htmlEX代码质量工具集成:将质量检查融入开发的完整指南

pdf2htmlEX代码质量工具集成&#xff1a;将质量检查融入开发的完整指南 【免费下载链接】pdf2htmlEX Convert PDF to HTML without losing text or format. 项目地址: https://gitcode.com/gh_mirrors/pd/pdf2htmlEX pdf2htmlEX作为一款强大的PDF转HTML工具&#xff0c;…...

大数据治理必看:数据目录的五大核心功能

大数据治理必看&#xff1a;数据目录的五大核心功能关键词&#xff1a;大数据治理、数据目录、元数据管理、数据血缘、数据协作摘要&#xff1a;在数据量爆炸式增长的今天&#xff0c;企业常面临“数据多到找不到、找到不敢用、用了怕出错”的困境。数据目录作为大数据治理的“…...

从PTA天梯赛L1真题看起:新手如何用C++快速搞定编程竞赛里的“送分题”?

从PTA天梯赛L1真题看起&#xff1a;新手如何用C快速搞定编程竞赛里的“送分题”&#xff1f; 第一次参加编程竞赛的新手&#xff0c;面对屏幕上密密麻麻的题目&#xff0c;往往会感到无从下手。但仔细观察历届PTA天梯赛L1级别的题目&#xff0c;你会发现一个有趣的现象——总有…...

从一次调试失败讲起:用示波器和IBERT深度排查FPGA JESD204B时钟与SYSREF问题

从一次调试失败讲起&#xff1a;用示波器和IBERT深度排查FPGA JESD204B时钟与SYSREF问题 那是一个周五的深夜&#xff0c;实验室里只剩下示波器的荧光在闪烁。我们团队精心设计的JESD204B数据采集系统突然在联调时出现随机失锁——ADC与FPGA之间的链路像被施了魔法一样时通时断…...

从抓包到反编译:wx小程序逆向实战全记录(含云函数分析)

从抓包到反编译&#xff1a;小程序逆向工程深度解析与技术实践 在移动互联网时代&#xff0c;小程序以其轻量化和便捷性迅速占领市场&#xff0c;而作为开发者&#xff0c;理解小程序背后的运行机制不仅能提升开发能力&#xff0c;更能帮助进行安全审计和性能优化。本文将带您深…...

RuView:无摄像头环境下人体姿态追踪的创新方法探索

RuView&#xff1a;无摄像头环境下人体姿态追踪的创新方法探索 【免费下载链接】RuView Production-ready implementation of InvisPose - a revolutionary WiFi-based dense human pose estimation system that enables real-time full-body tracking through walls using com…...

Wireshark 实战|HTTP 协议:浏览器和服务器是怎么聊天的?

Wireshark 实战&#xff5c;HTTP 协议&#xff1a;浏览器和服务器是怎么聊天的&#xff1f; 大家好&#xff0c;我是网域小星球&#xff0c;一名网络工程大三学生。上一篇我们拆解了 DNS 域名解析&#xff0c;今天我们继续往下走&#xff0c;看看拿到 IP 地址后&#xff0c;浏…...