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

算法训练营Day34(贪心算法)

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

1005. K 次取反后最大化的数组和 - 力扣(LeetCode)

秒了

class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);// -4 -3 -2 -1 5//-2 -2 0 2 5int last = -1;for(int i = 0;i<nums.length;i++){if(k==0) break;if(nums[i]<0){k--;nums[i]=-nums[i];continue;}if(nums[i]>=0){break;}}Arrays.sort(nums);if(k%2==1) nums[0]*=-1;// while(k-->0){//     nums[0] = - nums[0];// }int res = 0;for(int i = 0;i<nums.length;i++){res += nums[i];}return res;}
}

134. 加油站

134. 加油站 - 力扣(LeetCode)

这个图,就是假设curSum之前选择,有可能让这个curSum>0的话,

那么假设中间开始,

从最左到最右已经确定和小于0,假设从中间到最右,和大于0

那么总体小于0,那么区间1就是<0,,这个节点就不能用了。要更新。

所以:一遇到累加和curSum<0.区间start==i+1就可以了,curSum重新归0,

至于环的问题,total排除掉了没有结果的案例,也就是说,一定是有结果的

那么curSum之前没有结果,那么一定再后面,也就不需要环了

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum = 0;int totalSum = 0;int start = 0;for(int i = 0;i<gas.length;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;}
}

135. 分发糖果  

135. 分发糖果 - 力扣(LeetCode)

涉及到一个思想,就是想处理好一边再处理另一边,不要两边想着一起兼顾

第二次遍历的时候注意取最大值就可以了

class Solution {public int candy(int[] ratings) {int [] nums = new int[ratings.length];for(int i = 0;i<nums.length;i++){if(i==0){nums[i]=1;}if(i>0&&ratings[i]>ratings[i-1]){nums[i]=nums[i-1]+1;}else{nums[i]=1;}}for(int i = ratings.length-2;i>=0;i--){if(ratings[i]>ratings[i+1]){nums[i] = Math.max(nums[i+1]+1,nums[i]);}else{// nums[i] = Math.max(1,nums[i]);//不要这个else也可以}}int res = 0;for(int i = 0;i<nums.length;i++){res+=nums[i];}return res;}
}

相关文章:

算法训练营Day34(贪心算法)

1005.K次取反后最大化的数组和 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 秒了 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);// -4 -3 -2 -1 5//-2 -2 0 2 5int last -1;for(int i 0;i<…...

uniapp:全局消息是推送,实现app在线更新,WebSocket,apk上传

全局消息是推送&#xff0c;实现app在线更新&#xff0c;WebSocket 1.在main.js中定义全局的WebSocket2.java后端建立和发送WebSocket3.通知所有用户更新 背景&#xff1a; 开发人员开发后app后打包成.apk文件&#xff0c;上传后通知厂区在线用户更新app。 那么没在线的怎么办&…...

ARM1.2作业

实现数码管不同位显示不同的数字 spi.h #ifndef __SPI_H__ #define __SPI_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h"//MOSI对应的引脚输入高低电平的信号PE14 #define MOSI_OUTPUT_H() do{GPIOE->ODR | (0x1 << 14);}whi…...

【算法专题】递归算法

递归 递归1. 汉诺塔问题2. 合并两个有序链表3. 反转链表4. 两两交换链表中的节点5. Pow(x, n) --- 快速幂 递归 在解决⼀个规模为 n 的问题时&#xff0c;如果满足以下条件&#xff0c;我们可以使用递归来解决&#xff1a; 问题可以被划分为规模更小的子问题&#xff0c;并且…...

不停止业务的情况下优化 Elasticsearch Reindex

在使用 Elasticsearch 时,我们总有需要修改索引映射的时候,这时我们只能进行 _reindex。事实上,这是一个相当昂贵的操作,因为根据数据量和分片数量,完整复制一个索引可能需要几个小时。 花费的时间不是大问题,但更严重的是,它会影响生产环境的性能甚至功能。 相信大家…...

PB 按Excel动态创建对应字段

/* > Function: w_cwjk_xhyy.wf_dw_init >-------------------------------------------------------------------- > 描述: 按excel表格列名,创建对应字段,用于部分接口对应字段导出文件 >-------------------------------------------------------------------- …...

数据结构——红黑树 and B-树

红黑树 根据平衡条件第4、5两点 最短路径&#xff0c;都是黑色 最长路径&#xff0c;红黑相间 最长是最短的两倍 B-树...

Android中线程间的通信-Handler

Handler机制在Android中主要用于线程间的通信&#xff0c;特别是处理从子线程向主线程&#xff08;UI线程&#xff09;传递消息和更新界面。 Handler中的四个关键对象及其作用&#xff1a; Message&#xff1a; Message 是在线程间传递的数据载体&#xff0c;它包含了需要处理…...

Spring Boot Admin健康检查引起的Spring Boot服务假死

问题现象 最近在spring boot项目中引入了 spring-boot-starter-actuator 后&#xff0c;测试环境开始出现服务假死的现象&#xff0c; 且这个问题十分怪异&#xff0c;只在多个微服务中的简称A的这个服务中出现&#xff0c;其他服务都没有出现这个问题&#xff0c; 之所以说…...

java企业人事信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web企业人事信息管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境 为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为M…...

如何通过 useMemo 和 useCallback 提升你的 React 应用性能

背景 在 React 中&#xff0c;useMemo 和 useCallback 这两个 hook 是我们优化应用性能的有力工具。它们会返回 memoized 版本的值或函数&#xff0c;只在依赖项发生变化时才进行重新计算或定义。 Hook 介绍 useMemo useMemo 的作用是返回一个 memoized 值&#xff0c;它接…...

ArkTS - @Prop、@Link

一、作用 Prop 装饰器 和Link装饰器都是父组件向子组件传递参数&#xff0c;子组件接收父组件参数的时候用的&#xff0c;变量前边需要加上Prop或者Link装饰器即可。&#xff08;跟前端vue中父组件向子组件传递参数类似&#xff09; // 子组件 Component struct SonCom {Prop…...

Python中matplotlib库的使用1

1 matplotlib库简介 matplotlib是一个数学绘图库&#xff0c;可以将数据通过图形的方式显示出来&#xff0c;也就是数据可视化。 2 matplotlib库的安装 2.1 打开cmd窗口 点击键盘的“Win”“R”键&#xff0c;在弹出的“运行”对话框的“打开”栏中输入“cmd”&#xff0c;…...

位乘积计数-蓝桥

题目链接&#xff1a;1.位乘积计数 - 蓝桥云课 (lanqiao.cn) 解题思路&#xff1a;10的5次数量级暴力居然过了&#xff0c;看来测试样例很水&#xff0c;直接1遍历到n&#xff0c;再用一个循环判断每位数相乘乘机是否等于m即可。 下面是c代码&#xff1a; #include <iost…...

HCIA-Datacom题库(自己整理分类的)——OSPF协议判断

1.路由表中某条路由信息的Proto为OSPF则此路由的优先级一定为10。√ 2.如果网络管理员没有配置骨干区域,则路由器会自动创建骨干区域&#xff1f; 路由表中某条路由信息的Proto为OSPF&#xff0c;则此路由的优先级一定为10。 当两台OSPF路由器形成2-WAY邻居关系时&#xff0…...

【FPGA/verilog -入门学习16】fpga状态机实现

需求&#xff1a; 用两段式状态机设计序列码检测机。这个序列码检测机用于检索连续输入的 1bit 数据 &#xff08;每个时钟周期输入 1bit&#xff09;&#xff0c;当检测到一串“101100”的输入数据时&#xff0c;产生一个时钟周期的 高脉冲指示信号 状态图 //实现状态机切…...

记chrome的hackbar无法post php://input的问题

尽管hackbar支持post请求体&#xff0c;但是当请求体里面没有等于号的时候&#xff0c;无法post出去&#xff0c;这样如果需要使用php://input绕过waf的时候就没法做。 在开发人员工具的网络里面可以看到不使用等于号的情况下没有荷载。 之后在这里看到了解决方法&#xff0c;…...

相机解析驱动小记

用过了几款相机&#xff0c;对使用相机也有了一点心得&#xff0c;在此记录。 当你得到一款相机&#xff0c;你需要做的&#xff1a; 第一件事&#xff1a;在datasheet中阅读配置单&#xff0c;知道怎么配置、配置完输出来是什么。 配置输出尺寸&#xff1b;传输模式&#xf…...

EasyExcel判断导入时是否符合给定模板

问题描述 在做系统的导入导出模块时需要在导入时判断用户导入的表格是否符合给定的模板&#xff0c;该系统导入导出使用的是EasyExcel&#xff0c;因此在实现该功能时是基于EasyExcel的 解决方案 创建Spring Boot项目&#xff0c;并添加如下依赖 <dependency><group…...

BDD - Python Behave Retry 机制

BDD - Python Behave Retry 机制 引言Behave RetryBehave Retry 应用feature 文件创建 step 文件Retry运行 Behave 并生成 rerun 文件重新运行失败的场景 引言 在日常运行测试用例&#xff0c;有时因为环境不稳定造成一些测试用例跑失败了&#xff0c;如果能将这些失败的测试用…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...