2026-07-22:最大化特殊下标数目的最少增加次数。用go语言,给定一个长度为 n 的整数数组,如果某个下标 i(不是第一个也不是最后一个)满足它对应的元素比左右邻居都大,那么这个位置就算作“特殊
2026-07-22最大化特殊下标数目的最少增加次数。用go语言给定一个长度为 n 的整数数组如果某个下标 i不是第一个也不是最后一个满足它对应的元素比左右邻居都大那么这个位置就算作“特殊位置”。你可以多次进行操作每次操作可以任选一个下标把该位置的数值加 1。目标有两个让特殊位置的数量尽可能多。在达到这个最大数量的所有方案中让总的操作次数尽可能少。要求返回这个最少的总操作次数。3 n 100000。1 nums[i] 1000000000。输入 nums [1,2,2]。输出 1。解释从 nums [1, 2, 2] 开始。将 nums[1] 增加 1数组变为 [1, 3, 2]。最终数组是 [1, 3, 2]有 1 个特殊的下标这是可达到的最大值。不可能用更少的操作达到这个数量的特殊的下标。因此答案是 1。题目来自力扣3891。算法的核心思路如下1. 最大峰数量的结构分析数组首尾不能成为峰因此候选位置为下标 1 到 n-2。两个峰不能相邻因此峰之间至少间隔 1 个位置。最大峰数量只取决于数组长度 n若n 为奇数候选位置个数 n-2 也是奇数。要达到最大数量唯一方案是选择所有奇数下标即 1, 3, 5, …, n-2。若n 为偶数候选位置个数 n-2 是偶数。达到最大数量的方案有多种可以全选奇数下标、全选偶数下标或者在某个分界点之前选奇数下标、之后选偶数下标中间至少空一个位置保证不相邻。2. 单个峰的代价计算对于任意候选位置 i如果要将它变成峰需要让它严格大于左右邻居。由于只增加 i 本身所需最小操作次数为need max(0, max(nums[i-1], nums[i1]) 1 - nums[i])这个代价只取决于原始数组且各候选峰在不相邻的前提下互不干扰因为它们不会同时增加邻居。3. 奇偶性分流与方案枚举(1) 计算后缀代价数组suf从右向左每隔一个位置累加代价。具体从n-2开始每次i - 2直到i 0若n 为奇数这个循环会恰好覆盖所有奇数下标因为 n-2 是奇数。累加结果suf就是唯一最大峰方案的总代价直接返回。若n 为偶数循环覆盖的是所有偶数下标n-2 为偶数。此时suf是“全选偶数下标”方案的总代价作为初始最优解。(2) 偶数长度下的切换枚举仅当 n 为偶数用变量pre表示“当前已选中的前一段奇数下标”的累计代价。遍历奇数下标 i 1, 3, 5, … 直到 n-3将 i 加入奇数段pre 代价(i)将原本在偶数段中、紧挨着 i 的 i1 撤销suf - 代价(i1)此时方案的结构为已选奇数下标 [1, i]中间跳过 i2后半段继续选偶数下标 [i3, n-2]。这种结构保证了峰的数量仍然是最大值且中间有足够间隔。用pre suf更新全局最小代价。遍历结束后ans就是在所有达到最大峰数量的方案中的最小总操作次数。总时间复杂度整个过程对数组进行了一次或两次线性扫描计算 suf 一次n 为偶数时再扫描一次奇数 i每次操作仅涉及常数时间的数学运算。因此总时间复杂度为 O(n)。总额外空间复杂度算法只使用了常数个变量suf,pre,ans, 循环变量等没有开辟与输入规模相关的辅助数组。因此总额外空间复杂度为 O(1)。Go完整代码如下packagemainimport(fmt)funcminIncrease(nums[]int)int64{n:len(nums)suf:0fori:n-2;i0;i-2{sufmax(max(nums[i-1],nums[i1])-nums[i]1,0)}ifn%20{// 修改所有奇数下标returnint64(suf)}ans:suf// 修改 [2,n-2] 中的所有偶数下标pre:0// 枚举修改 [1,i] 中的奇数下标以及 [i3,n-2] 中的偶数下标fori:1;in-1;i2{premax(max(nums[i-1],nums[i1])-nums[i]1,0)suf-max(max(nums[i],nums[i2])-nums[i1]1,0)// 撤销 i1撤销后 suf 对应 [i3,n-2]ansmin(ans,presuf)}returnint64(ans)}funcmain(){nums:[]int{1,2,2}result:minIncrease(nums)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-defmin_increase(nums:list[int])-int:nlen(nums)# 计算初始 suf修改从 n-2 开始、步长为 2 的所有位置偶数下标位置当 n 为偶数时suf0foriinrange(n-2,0,-2):sufmax(max(nums[i-1],nums[i1])-nums[i]1,0)# 如果 n 是奇数直接返回 sufifn%21:returnsuf# n 为偶数时枚举分割点anssuf# 初始 ans 为修改所有偶数下标从 2 到 n-2pre0# 枚举修改奇数下标 [1, i] 以及偶数下标 [i3, n-2]foriinrange(1,n-1,2):premax(max(nums[i-1],nums[i1])-nums[i]1,0)# 撤销 i1 位置的贡献suf 变为对应 [i3, n-2] 的部分suf-max(max(nums[i],nums[i2])-nums[i1]1,0)ansmin(ans,presuf)returnans# 测试if__name____main__:nums[1,2,2]resultmin_increase(nums)print(result)C完整代码如下#includeiostream#includevector#includealgorithmusingnamespacestd;longlongminIncrease(vectorintnums){intnnums.size();longlongsuf0;// 计算初始 suf修改从 n-2 开始、步长为 2 的所有位置偶数下标位置for(intin-2;i0;i-2){sufmax(max(nums[i-1],nums[i1])-nums[i]1,0);}// 如果 n 是奇数直接返回 sufif(n%21){returnsuf;}// n 为偶数时枚举分割点longlonganssuf;// 初始 ans 为修改所有偶数下标从 2 到 n-2longlongpre0;// 枚举修改奇数下标 [1, i] 以及偶数下标 [i3, n-2]for(inti1;in-1;i2){premax(max(nums[i-1],nums[i1])-nums[i]1,0);// 撤销 i1 位置的贡献suf 变为对应 [i3, n-2] 的部分suf-max(max(nums[i],nums[i2])-nums[i1]1,0);ansmin(ans,presuf);}returnans;}intmain(){vectorintnums{1,2,2};longlongresultminIncrease(nums);coutresultendl;return0;}

相关新闻

导购比价小程序场景|京东联盟商品详情对接方案|多规格图文拉取技术实操

导购比价小程序场景|京东联盟商品详情对接方案|多规格图文拉取技术实操

一、业务背景:导购比价小程序核心落地痛点随着私域流量、内容种草、电商导购模式快速普及,轻量化导购比价小程序成为个人创业者、自媒体团队、电商服务商的主流变现载体。这类小程序核心能力是聚合京东海量商品、展示完整商品信息、实现多商品比价、精准…

2026/7/27 6:46:13 阅读更多 →
Java与Lua集成实战:构建可热更新的动态规则引擎

Java与Lua集成实战:构建可热更新的动态规则引擎

1. 项目概述:当Java遇见Lua,静态架构的动态革命 在传统的Java开发世界里,我们习惯了“编译-打包-部署”的固定流程。每次业务逻辑的微小变动,都可能意味着一次繁琐的发布、重启和验证。尤其是在需要快速响应市场变化、频繁调整策略…

2026/7/26 5:35:40 阅读更多 →
WinDbg Preview与KDNET v2协议详解及配置指南

WinDbg Preview与KDNET v2协议详解及配置指南

1. WinDbg Preview与KDNET v2协议概述微软商店版WinDbg Preview近期迎来重要更新,正式加入对KDNET v2协议的支持。作为Windows内核调试的核心工具,这一升级显著改善了远程调试体验。KDNET(Kernel Debugging over Network)是微软推…

2026/7/28 11:08:32 阅读更多 →

最新新闻

GetQzonehistory:三步找回QQ空间消失的青春记忆

GetQzonehistory:三步找回QQ空间消失的青春记忆

GetQzonehistory:三步找回QQ空间消失的青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾试图找回多年前的QQ空间说说,却发现平台只显示最近几年的…

2026/7/28 17:47:00 阅读更多 →
物联网设备超低功耗电源管理与MCU优化方案

物联网设备超低功耗电源管理与MCU优化方案

1. 项目背景与核心挑战在物联网设备设计中,初级电池(不可充电电池)供电方案面临一个关键矛盾:设备功能日益复杂带来的功耗增长与有限电池容量之间的冲突。以LoRaWAN节点为例,典型AA电池在持续监测场景下往往只能维持6-…

2026/7/28 17:47:00 阅读更多 →
python绘制对比分析图(柱状图、折线图)

python绘制对比分析图(柱状图、折线图)

所谓对比分析就是两个相互联系的指标进行比较下面用例子说明,首先导入库,别名因为我用的是jupyter notebook,后面需要用matplotlib画图,所以要加上%matplotlib inlineimport pandas as pd import nummpy as np import matplotlib.…

2026/7/28 17:47:00 阅读更多 →
蓝牙5.4 LE Audio模块IDC777-1与PIC18LF45K42开发指南

蓝牙5.4 LE Audio模块IDC777-1与PIC18LF45K42开发指南

1. 项目背景与核心价值在无线音频传输领域,蓝牙5.4标准的推出标志着LE Audio技术的成熟应用。IDC777-1作为一款全集成蓝牙5.4模块,与PIC18LF45K42微控制器的组合,为开发者提供了构建高质量无线音频系统的完整解决方案。这套方案特别适合需要低…

2026/7/28 17:47:00 阅读更多 →
3分钟免费解锁Microsoft 365完整功能:终极Office激活方案

3分钟免费解锁Microsoft 365完整功能:终极Office激活方案

3分钟免费解锁Microsoft 365完整功能:终极Office激活方案 【免费下载链接】ohook An universal Office "activation" hook with main focus of enabling full functionality of subscription editions 项目地址: https://gitcode.com/gh_mirrors/oh/oho…

2026/7/28 17:47:00 阅读更多 →
spark基础:

spark基础:

1.什么是spark?(1)基于spark 基于scala语言(3 spark )体系结构:(1)主节点:master(2) 从节点:3.安装spark 伪分布的环境:

2026/7/28 17:46:00 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻