2026-07-14:两个值之间的最小绝对差值。用go语言,给定一个只由 0、1、2 组成的整数数组 nums。 我们要找所有满足条件的下标对(i, j),其中当 nums[i] 等于 1,且 num
2026-07-14两个值之间的最小绝对差值。用go语言给定一个只由 0、1、2 组成的整数数组 nums。我们要找所有满足条件的下标对i, j其中当 nums[i] 等于 1且 nums[j] 等于 2 时这样的i, j被称为“有效下标对”。在所有有效下标对之中计算每一对的下标差|i - j|。要求返回这些有效下标对里“最小的下标差”。如果数组中根本不存在任何有效下标对即不存在某个 i 使得 nums[i]1 同时存在某个 j 使得 nums[j]2则返回 -1。1 nums.length 100。0 nums[i] 2。输入 nums [1,0,0,2,0,1]。输出 2。解释有效下标对有(0, 3)其绝对差为 abs(0 - 3) 3。(5, 3)其绝对差为 abs(5 - 3) 2。因此结果是 2。题目来自力扣3880。一、分步详细执行过程步骤1初始化基础变量计算数组长度 n 6定义答案变量 ans n 6用数组长度作为初始最大值后续找到更小差值就覆盖初始化last [-6, -6]last[0]存最近1的下标last[1]存最近2的下标初始值-6。步骤2逐个遍历数组每个元素下标i从0到5第1轮i0元素x1判断 x0满足条件进入逻辑x x-1 0计算对立编号x^1 0^1 1取出 last[1] -6计算差值 i - last[1] 0 - (-6) 6执行 min(ans6, 6)ans 保持6不变更新 last[0] i 0现在 last [0, -6]记录下标0是最近出现的1。第2轮i1元素x0x不大于0直接跳过所有计算逻辑last数组、ans均无变化。第3轮i2元素x0x不大于0直接跳过所有计算逻辑last数组、ans均无变化。第4轮i3元素x2判断 x0满足条件进入逻辑x x-1 1计算对立编号x^1 1^1 0取出 last[0] 0计算差值 i - last[0] 3 - 0 3执行 min(ans6, 3)ans 更新为3更新 last[1] i 3现在 last [0, 3]记录下标3是最近出现的2。第5轮i4元素x0x不大于0直接跳过所有计算逻辑last数组、ans均无变化。第6轮i5元素x1判断 x0满足条件进入逻辑x x-1 0计算对立编号x^1 0^1 1取出 last[1] 3计算差值 i - last[1] 5 - 3 2执行 min(ans3, 2)ans 更新为2更新 last[0] i 5现在 last [5, 3]更新最近出现1的下标为5。步骤3遍历结束后判断返回值遍历完成后 ans2ans不等于初始值n6说明存在有效1、2配对直接返回ans2和题目输出一致。补充边界场景逻辑不存在有效配对如果数组只有1没有2 / 只有2没有1遍历全程不会同时出现1和2ans会一直等于初始值n此时函数返回-1。二、时间复杂度分析数组仅进行单层一次遍历数组长度为n循环执行n次循环内部所有操作数值转换、异或、取值、求最小值、数组赋值全部是常数级 O(1) 运算整体时间复杂度O(n)n为输入数组长度。三、额外空间复杂度分析仅固定开辟了两个变量n、ans固定长度数组 last长度恒等于2和输入数组长度n无关属于常数空间没有动态数组、切片、哈希表等随n增大而扩容的存储整体额外空间复杂度O(1)常数空间。Go完整代码如下packagemainimport(fmt)funcminAbsoluteDifference(nums[]int)int{n:len(nums)ans:n// last[x] 表示 x1 上一次出现的位置last:[2]int{-n,-n}// i - (-n) n不会让 ans 变小fori,x:rangenums{ifx0{// 如果 x 是 1那么找上一个 2 的位置// 如果 x 是 2那么找上一个 1 的位置x--ansmin(ans,i-last[x^1])last[x]i}}ifansn{return-1}returnans}funcmain(){nums:[]int{1,0,0,2,0,1}result:minAbsoluteDifference(nums)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-fromtypingimportListdefmin_absolute_difference(nums:List[int])-int:nlen(nums)ansn# last[x] 表示 x1 上一次出现的位置last[-n,-n]# i - (-n) n不会让 ans 变小fori,xinenumerate(nums):ifx0:# 如果 x 是 1那么找上一个 2 的位置# 如果 x 是 2那么找上一个 1 的位置x-1ansmin(ans,i-last[x^1])last[x]iifansn:return-1returnansdefmain():nums[1,0,0,2,0,1]resultmin_absolute_difference(nums)print(result)if__name____main__:main()C完整代码如下#includeiostream#includevector#includealgorithmusingnamespacestd;intminAbsoluteDifference(vectorintnums){intnnums.size();intansn;// last[x] 表示 x1 上一次出现的位置intlast[2]{-n,-n};// i - (-n) n不会让 ans 变小for(inti0;in;i){intxnums[i];if(x0){// 如果 x 是 1那么找上一个 2 的位置// 如果 x 是 2那么找上一个 1 的位置x--;ansmin(ans,i-last[x^1]);last[x]i;}}if(ansn){return-1;}returnans;}intmain(){vectorintnums{1,0,0,2,0,1};intresultminAbsoluteDifference(nums);coutresultendl;return0;}

相关新闻

全面解析 YOLO11 训练脚本 `train.py` 的所有参数,涵盖数据加载、训练流程、模型结构、优化器、学习率调度等八大类别,并提供高级参数组合与实战技巧,助你掌握 YOLO11 训练的精髓

全面解析 YOLO11 训练脚本 `train.py` 的所有参数,涵盖数据加载、训练流程、模型结构、优化器、学习率调度等八大类别,并提供高级参数组合与实战技巧,助你掌握 YOLO11 训练的精髓

🎬 Clf丶忆笙:个人主页 🔥 个人专栏:《YOLOv11全栈指南:从零基础到工业实战》 ⛺️ 努力不一定成功,但不努力一定不成功! 文章目录 一、YOLO11训练基础概述 1.1 YOLO11训练流程概览 1.2 参数分类概览 二、数据相关参数详解 2.1 --data参数:数据集配置文件路径 2.2…

2026/7/14 7:44:19阅读更多 →
神经网络的输入和输出数据类型

神经网络的输入和输出数据类型

一.神经网络的输入数据类型神经网络的输入数据类型,本质上是根据数据的结构和来源划分的,不同类型的数据对应不同的神经网络架构(比如 CNN 对应图像、RNN 对应序列)。常见的输入数据类型主要有以下 4 类:1. 结构化数据…

2026/7/14 7:39:19阅读更多 →
Turbo Builder PRO:Unity跨平台自动化构建与CI/CD集成实战

Turbo Builder PRO:Unity跨平台自动化构建与CI/CD集成实战

1. 项目概述:为什么我们需要Turbo Builder PRO?如果你是一个Unity开发者,尤其是负责项目构建和发布的同学,那么“打包”这个词对你来说,可能意味着一段漫长而充满不确定性的等待。从PC到Android,从iOS到Web…

2026/7/14 7:39:19阅读更多 →
Godot动画状态机:Idle与Walk状态切换的完整实现指南

Godot动画状态机:Idle与Walk状态切换的完整实现指南

这次我们来看Godot引擎中的动画状态机实现,特别是Idle(空闲)和Walk(行走)状态之间的自由切换。对于游戏开发者来说,角色动画的流畅切换是提升游戏体验的关键环节,而Godot的状态机系统提供了直观…

2026/7/14 9:14:29阅读更多 →
遗传算法工程落地:从参数玄学到可调谐优化的实战指南

遗传算法工程落地:从参数玄学到可调谐优化的实战指南

1. 项目概述:为什么“遗传算法第二讲”比第一讲更值得你花时间重读“遗传算法”这四个字,听上去像生物课和计算机课的混血儿——既带着DNA双螺旋的神秘感,又透着代码里for循环的机械味。但真正让我在带三届算法实训班、陪二十多个工业优化项目…

2026/7/14 9:14:29阅读更多 →
Janus-Pro多模态AI模型:架构优化与生成稳定性突破

Janus-Pro多模态AI模型:架构优化与生成稳定性突破

1. Janus-Pro项目概述Janus-Pro是Janus项目的升级版本,专注于统一的多模态理解和生成任务。这个项目在三个关键维度进行了重大改进:训练策略优化、训练数据扩展和模型规模扩大。作为从业者,我认为这种全方位的升级路径在当前多模态AI领域具有…

2026/7/14 9:14:29阅读更多 →
揭秘AI图像鉴伪黑科技:一键识别PS、生成式与OCR攻击

揭秘AI图像鉴伪黑科技:一键识别PS、生成式与OCR攻击

1. AI图像鉴伪技术为何成为刚需? 十年前修图还需要专业软件,现在手机App一键就能把照片改得面目全非。更可怕的是,生成式AI能让完全不存在的脸孔、场景以假乱真。去年某银行就遇到过客户用AI生成的房产证骗贷,损失高达数百万。这种…

2026/7/14 9:14:29阅读更多 →
TB67H480FNG与PIC18F45K22电机控制方案详解

TB67H480FNG与PIC18F45K22电机控制方案详解

1. 为什么选择TB67H480FNG与PIC18F45K22组合 在电机控制领域,TB67H480FNG驱动芯片与PIC18F45K22微控制器的组合堪称经典搭配。这套方案特别适合需要高性价比、中等复杂度的运动控制场景。TB67H480FNG是东芝推出的双通道H桥驱动器,最大输出电流可达4.5A&a…

2026/7/14 9:14:29阅读更多 →
二、PyTorch气温预测:从数据探索到模型部署全流程解析

二、PyTorch气温预测:从数据探索到模型部署全流程解析

1. 气温预测项目概述 气温预测是机器学习中一个典型的回归问题,通过历史气象数据来预测未来某天的最高温度。这个项目非常适合初学者练手,因为它涵盖了数据科学项目的完整流程:从数据探索、预处理到模型构建、训练和评估。使用PyTorch框架可以…

2026/7/14 9:09:27阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/14 4:56:14阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/14 2:55:05阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/14 6:17:41阅读更多 →
【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

更多请点击: https://intelliparadigm.com 第一章:Cursor数据库安全红线概览 Cursor 作为一款基于 AI 的智能编程助手,其本地数据库(SQLite 存储)承载着用户代码片段、会话历史、自定义规则及敏感上下文信息。理解其安…

2026/7/14 0:03:18阅读更多 →
【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

更多请点击: https://codechina.net 第一章:Notion AI写作辅助的底层能力边界认知 Notion AI 并非通用大语言模型的直接封装,而是基于 Llama 系列与自研微调模型构建的轻量化推理服务,其输入上下文窗口严格限制在 8192 token&…

2026/7/14 0:03:18阅读更多 →
AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:03:18阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/13 4:21:17阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/14 4:45:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/14 2:42:17阅读更多 →