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

每日一题——贪心算法

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

题解:

一开始有点理解错他的意思,以为是i是题目中会给出,所以一开始没有什么思路,然后当看了题解之后,就知道了原来i是自己订的,到时候自己找就可以,我的思路是,先按照绝对值的大小给他排列出来,然后给他遍历,负数就给他变成正数,当没负数的时候,再变小的正数,这就是贪心的思想由局部最小推出整体最小!

 
class Solution {public int largestSumAfterKNegations(int[] nums, int k) {nums = IntStream.of(nums).boxed().sorted((o1,o2) -> Math.abs(o2)-Math.abs(o1)).mapToInt(Integer::intValue).toArray();int len = nums.length;for(int i = 0;i < len;i++){if(nums[i]<0 && k<0){nums[i] = -nums[i];k--;}}if(k%2==1){nums[len-1] = -nums[len-1];}return Arrays.stream(nums).sum();}
}

134. 加油站 - 力扣(LeetCode)

这个题目一开始并不是很明白,看了题解之后发现有三种情况,第一种情况就是,当加油站的油的总和小于消耗的油的话就不会绕圈一周,当总和大于等于0的时候就返回0

 
class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int sum = 0;int min = 0;for(int i = 0; i < gas.length;i++){sum += (gas[i]-cost[i]);min = Math.min(sum,min);}if(sum<0){return -1;}if(min>=0){return 0;}for(int i = gas.length-1;i > 0;i--){min += (gas[i] - cost[i]);if(min>=0){return i;}}return -1;}
}

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

该题的思路就是分两种情况,就是先从左往右比,如果右边的数比左边的大就加一,然后就反过来遍历,如果左边的数比右边的数大就加一;

 
class Solution {public int candy(int[] ratings) {int len = ratings.length;int[] candyVec = new int[len];candyVec[0] = 1;for(int i = 1; i < len; i++){if(ratings[i]>ratings[i-1]){candyVec[i] = candyVec[i-1]+1;}else{candyVec[i] = 1;}}for(int i = len-2;i>=0;i--){if(ratings[i]>ratings[i+1]){candyVec[i] = Math.max(candyVec[i],candyVec[i+1]+1);}}int ans = 0;for(int num : candyVec){ans += num;}return ans;}
}

相关文章:

每日一题——贪心算法

1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; 一开始有点理解错他的意思&#xff0c;以为是i是题目中会给出&#xff0c;所以一开始没有什么思路&#xff0c;然后当看了题解之后&#xff0c;就知道了原来i是自己订的&#xff0c…...

Artix7系列FPGA实现SDI视频编解码+图像缩放+多路视频拼接,基于GTP高速接口,提供4套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的FPGA图像缩放方案本博已有的已有的FPGA视频拼接叠加融合方案本方案的无缩放应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用 3、详细设计方案设计原理框图S…...

HTTP 状态码详细介绍

超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff0c;HTTP&#xff09;是一个简单的请求-响应协议&#xff0c;它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出&#xff1b;而消息内…...

React前端面试每日一试 5.什么是受控组件和非受控组件?

在React中&#xff0c;受控组件和非受控组件是两种处理表单数据的方式。理解这两种方式对于管理和维护表单状态非常重要。 受控组件&#xff08;Controlled Components&#xff09; 受控组件是指那些表单数据完全由React组件的状态控制的组件。也就是说&#xff0c;表单元素的…...

代码随想录打卡第四十四天

代码随想录–动态规划部分 day 44 动态规划第11天 文章目录 代码随想录--动态规划部分一、力扣1143--最长公共子序列二、力扣1035--不相交的线三、力扣53--最大子数组和四、力扣392--判断子序列 一、力扣1143–最长公共子序列 代码随想录题目链接&#xff1a;代码随想录 给定…...

【JAVA】枚举类的使用:通过枚举类名称得到对应值进行输出

枚举类其实就是一个特殊的class。 /*** ClassName: CardType* Description:数字卡类型对应的文字卡类型*/ public enum CardType {NORMAL_CARD("金普卡"),BUSINESS_CARD("商务卡"),PRIVATE_CARD("黑金无限卡");private String cardName;CardTyp…...

20240731软考架构------软考6-10答案解析

每日打卡题6-10答案 6、【2012年真题】 难度&#xff1a;一般 若系统中的某子模块需要为其他模块提供访问不同数据库系统的功能&#xff0c;这些数据库系统提供的访问接口有一定的差异&#xff0c;但访问过程却都是相同的&#xff0c;例如&#xff0c;先连接数据库&#xff0c…...

学习记录——day25 多线程编程 临界资源 临界区 竞态 线程的同步互斥机制(用于解决竟态)

目录 ​编辑 一、多进程与多线程对比 二、 临界资源 临界区 竞态 例1&#xff1a;临界资源 实现 输入输出 例2&#xff1a;对临界资源 进行 减减 例子3&#xff1a;临界资源抢占使用 三、线程的同步互斥机制&#xff08;用于解决竟态&#xff09; 3.1基本概念 3.2线…...

[RK3566]linux下使用upgrade_tool报错

linux下使用upgrade_tool报错Creating Comm Object failed! Rockusb>uf /home/zhuhongxi/RK3566_AOSP_SDK/rockdev/Image-rk3566_tspi/update.img Loading firmware... Support Type:RK3568 FW Ver:b.0.00 FW Time:2024-08-03 12:00:09 Loader ver:1.01 Loader Time:…...

系统架构师(每日一练13)

每日一练 答案与解析 1.应用系统构建中可以采用多种不同的技术&#xff0c;()可以将软件某种形式的描述转换为更高级的抽象表现形式&#xff0c;而利用这些获取的信息&#xff0c;()能够对现有系统进行修改或重构&#xff0c;从而产生系统的一个新版本。答案与解析 问题1 A.逆…...

Error: No module factory available for dependency type: CssDependency

本篇主要用来记录VUE打包的问题点&#xff0c;今天使用npm run build:prod 打包VUE出现如下问题&#xff1a; Error: No module factory available for dependency type: CssDependency 因为测试和预发布都挺正常的&#xff0c;正式环境竟然出问题&#xff0c;废话不多说&…...

【langchain学习】使用Langchain生成多视角查询

使用Langchain生成多视角查询 导入所需库&#xff1a; from langchain.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_core.runnables import RunnablePassthrough from config import llm设置提示模板&#x…...

ASPCMS 漏洞详细教程

一.后台修改配置文件拿shell 登录后台 如下操作 保存并抓包 将slideTextStatus的值修改为1%25><%25Eval(Request(chr(65)))25><%25 放包&#xff08;连接密码是a&#xff09; 然后用工具连接 成功连接...

二维码生成原理及解码原理

☝☝☝二维码配图 二维码 二维码&#xff08;Quick Response Code&#xff0c;简称QR码&#xff09;是一种广泛使用的二维条形码技术&#xff0c;由日本公司Denso Wave在1994年开发。二维码能有效地存储和传递信息&#xff0c;广泛应用于商品追溯、支付、广告等多个领域。二维…...

云计算实训20——mysql数据库安装及应用(增、删、改、查)

一、mysql安装基本步骤 1.下载安装包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2.解压 tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3.卸载mariadb yum -y remove mariadb 查看解压后的包 [rootmysq…...

24年电赛——自动行驶小车(H题)基于 CCS Theia -陀螺仪 JY60 代码移植到 MSPM0G3507(附代码)

前言 只要搞懂 M0 的代码结构和 CCS 的图形化配置方法&#xff0c;代码移植就会变的很简单。因为本次电赛的需要&#xff0c;正好陀螺仪部分代码的移植是我完成的。&#xff08;末尾附全部代码&#xff09; 一、JY60 陀螺仪 JY60特点 1.模块集成高精度的陀螺仪、加速度计&…...

数组的增删查查改

1、增 1.Cpp #include <iostream> using namespace std; #include "add.h"int main() {//初始化数组int arr[5];//前四个元素为1&#xff0c;2&#xff0c;3&#xff0c;4for (int i 0; i < 4; i){arr[i] i1;}//数组第5个赋值为100arr[4] 100;for (int…...

设计模式——动态代理

设计模式——动态代理 动态代理的基本概念动态代理的实现步骤总结 在Java中&#xff0c;动态代理是一种强大的机制&#xff0c;它允许在运行时创建一个代理对象&#xff0c;这个代理对象可以代表另一个实际对象&#xff0c;它允许你在不直接操作原始对象的情况下&#xff0c;通…...

vue(element-ui组件) 的this.$notify的具体使用

getNotify() {this.noClose();let message "";message this.itemData.map((ele) > {const text "任务" ele.title "新增" ele.num "条言论";return this.$createElement("el-tooltip",{props: {content: text,pla…...

c++ - 模拟实现set、map

文章目录 前言一、set模拟实现二、map模拟实现 前言 在C标准库中&#xff0c;std::set 和 std::map都是非常常用的容器&#xff0c;它们提供了基于键值对的存储和快速查找能力。然而&#xff0c;关于它们的底层实现&#xff0c;C标准并没有强制规定具体的数据结构&#xff0c;只…...

Spring Boot 2026教育技术演示项目全栈架构与工程实践解析

1. 项目概述&#xff1a;一个面向未来的教育技术演示 最近在整理开源项目时&#xff0c;我注意到了 holzerjm/GACEP-Spring-2026-demo 这个仓库。乍一看&#xff0c;这个标题信息量不小&#xff0c;它像是一个技术演示&#xff0c;但前缀 GACEP 和 Spring-2026 又透露出…...

模块化IC设计流程:应对复杂芯片挑战的解决方案

1. 现代IC设计面临的挑战与模块化流程的价值在当今半导体行业&#xff0c;芯片设计团队正面临前所未有的复杂挑战。随着工艺节点不断演进至5nm及以下&#xff0c;设计复杂度呈指数级增长。我曾参与的一个65nm SoC项目&#xff0c;团队最初采用传统线性设计流程&#xff0c;结果…...

日志收集与分析平台搭建:ELK Stack实战入门

为什么测试工程师需要ELK在软件测试的日常工作中&#xff0c;日志是我们最熟悉也最依赖的“侦探工具”。无论是定位功能缺陷、分析性能瓶颈&#xff0c;还是复现偶发性Bug&#xff0c;测试人员都离不开日志。然而&#xff0c;随着微服务架构、容器化部署和分布式系统的普及&…...

点云成像三维焊缝识别与机器人跟踪【附代码】

✨ 长期致力于点云成像、焊缝识别定位、机器人、点云拼接、焊缝轨迹跟踪研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;基于圆柱体拟合与ICP拼接的点云…...

AVL许可排队严重?不想买新许可,回收闲置即刻算例

AVL许可排队严重&#xff1f;不买新许可&#xff0c;回收闲置许可就能解决&#xff0c;我就踩过这个坑关键词分析&#xff1a;AVL里藏着的宝藏AVL许可排队严重&#xff1f;别急着买新许可&#xff01;我们先来看看这个问题到底藏哪儿。2026年我帮某制造业客户做系统优化时&…...

从寄存器到库函数:手把手拆解STM32的RCC时钟树(以F103C8T6为例)

从寄存器到库函数&#xff1a;手把手拆解STM32的RCC时钟树&#xff08;以F103C8T6为例&#xff09; 在嵌入式开发领域&#xff0c;STM32系列微控制器因其出色的性能和丰富的外设资源而广受欢迎。然而&#xff0c;对于许多开发者来说&#xff0c;STM32的时钟系统&#xff08;RCC…...

Temu 批量视频更新效率:10 分钟搞定全店素材,抢占内容流量高地

2026 年 Temu 平台内容化流量分配机制全面落地&#xff0c;商品视频权重持续攀升&#xff0c;成为决定搜索排名与转化效果的核心变量。但多数卖家仍受困于手动逐个上传视频的低效模式&#xff0c;错失流量红利。凌风工具箱基于 Temu 官方 API 开发的批量视频更新功能&#xff0…...

C#上位机开发入门:手把手教你用PowerPMAC SDK实现第一个通讯Demo

C#上位机开发入门&#xff1a;从零构建PowerPMAC通讯Demo的实战指南 引言 当你第一次打开PowerPMAC开发套件时&#xff0c;面对密密麻麻的库文件和数百页的技术手册&#xff0c;是否感到无从下手&#xff1f;作为工业自动化领域的核心控制器&#xff0c;PowerPMAC与上位机的通讯…...

开发者个人网站搭建指南:从静态站点生成器到部署实战

1. 项目概述&#xff1a;一个为开发者量身定制的“数字家园” 在代码的海洋里泡久了&#xff0c;我们开发者总会遇到一个不大不小的痛点&#xff1a;如何高效、优雅地展示自己的技术栈、项目作品和个人思考&#xff1f;GitHub的README.md固然是标配&#xff0c;但它更像一份静态…...

告别adb shell:用Python脚本一键搞定Android屏幕截图与导出

Python自动化&#xff1a;告别adb shell&#xff0c;一键搞定Android屏幕截图与导出 每次调试Android应用时&#xff0c;手动敲adb命令截图、导出、重命名&#xff0c;是不是让你感到效率低下&#xff1f;作为一名长期与Android设备打交道的开发者&#xff0c;我深知这种重复劳…...