2026-07-04:找到第一个唯一偶数。用go语言,在数组 nums 中寻找这样的数:它是偶数(能被 2 整除),并且在 nums 里只出现一次。请返回满足条件的那个偶数的值,并且以其在数组中的首次
2026-07-04找到第一个唯一偶数。用go语言在数组 nums 中寻找这样的数它是偶数能被 2 整除并且在 nums 里只出现一次。请返回满足条件的那个偶数的值并且以其在数组中的首次出现位置最靠前为准如果数组中不存在这种偶数返回 -1。1 nums.length 100。1 nums[i] 100。输入 nums [3,4,2,5,4,6]。输出 2。解释2 和 6 都是偶数并且它们都恰好出现一次。因为 2 在数组中出现得更早所以答案是 2。题目来自力扣3866。一、函数执行分步详细过程输入数组[3,4,2,5,4,6]函数目标找出数组里第一个只出现一次的偶数无符合条件数字返回-1整体分为两大轮遍历逻辑。第一轮遍历统计所有偶数的出现次数初始化空哈希映射cntkey存偶数数值value存该偶数出现次数。依次取出数组每一个元素逐个判断是否为偶数只对偶数做计数累加元素33÷2余1是奇数跳过不存入映射。元素44是偶数映射中无4cnt[4]赋值为1。此时映射{4:1}。元素22是偶数映射中无2cnt[2]赋值为1。此时映射{4:1, 2:1}。元素55÷2余1是奇数跳过。元素44是偶数映射已有4cnt[4]在原有基础上加1变为2。此时映射{4:2, 2:1}。元素66是偶数映射中无6cnt[6]赋值为1。最终完整映射{4:2, 2:1, 6:1}。第一轮遍历结束映射里保存了数组全部偶数各自出现的总次数奇数完全不参与统计。第二轮遍历按原数组顺序查找第一个仅出现1次的偶数再次从头到尾遍历原数组按元素原始先后顺序校验条件满足则直接返回不再继续遍历元素3奇数直接跳过不判断次数。元素4偶数去映射查cnt[4]2出现次数不为1不符合跳过。元素2偶数去映射查cnt[2]1同时满足两个条件偶数、仅出现一次符合题目要求。立刻终止本轮遍历直接把数字2作为函数结果返回后续元素5、4、6不再处理。main主函数流程定义输入数组nums [3,4,2,5,4,6]。调用firstUniqueEven函数传入数组接收返回结果2。打印输出结果2。边界补充逻辑无匹配偶数场景如果第二轮完整走完数组全程没有找到“偶数且次数为1”的数字函数最后执行return -1。二、复杂度分析设数组长度为 n题目约束1 ≤ n ≤ 1001. 时间复杂度第一轮遍历数组循环执行 n 次O(n)第二轮遍历数组最坏情况完整循环 n 次O(n)两次线性遍历相加总时间复杂度O(n)2. 额外空间复杂度额外开辟了哈希映射存储偶数计数。数组元素取值范围1~100偶数最多50个映射存储元素数量固定有上限和输入数组长度n无关。因此总额外空间复杂度O(1)常数级空间Go完整代码如下packagemainimport(fmt)funcfirstUniqueEven(nums[]int)int{cnt:map[int]int{}for_,x:rangenums{ifx%20{cnt[x]}}for_,x:rangenums{ifx%20cnt[x]1{returnx}}return-1}funcmain(){nums:[]int{3,4,2,5,4,6}result:firstUniqueEven(nums)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-deffirst_unique_even(nums):cnt{}forxinnums:ifx%20:cnt[x]cnt.get(x,0)1forxinnums:ifx%20andcnt.get(x)1:returnxreturn-1if__name____main__:nums[3,4,2,5,4,6]resultfirst_unique_even(nums)print(result)C完整代码如下#includeiostream#includevector#includeunordered_mapintfirstUniqueEven(conststd::vectorintnums){std::unordered_mapint,intcnt;for(intx:nums){if(x%20){cnt[x];}}for(intx:nums){if(x%20cnt[x]1){returnx;}}return-1;}intmain(){std::vectorintnums{3,4,2,5,4,6};intresultfirstUniqueEven(nums);std::coutresultstd::endl;return0;}

相关新闻

【学习记录】Week11(三):House of Botcake 与 House of Pig——现代 CTF 堆利用的双子星

【学习记录】Week11(三):House of Botcake 与 House of Pig——现代 CTF 堆利用的双子星

写在前面:在 Week11 的前两篇中,我们复盘了传统的 House of 系列(Spirit, Force, Lore, Einherjar, Rabbit, Orange)。随着 glibc 版本的迭代,传统的技术或被修补,或难以适配现代环境。今天,我们…

2026/7/5 13:42:30阅读更多 →
【Java项目-企悦抽】02-AI赋能产品需求规格说明书

【Java项目-企悦抽】02-AI赋能产品需求规格说明书

声明:本文档AI辅助完成,内容仅供参考 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🎯 你正在阅读「Java项目-企悦抽」系列文章 🎯 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🔥 弹简特 个人主页 ❄️ 个人专栏直通车…

2026/7/5 13:42:30阅读更多 →
STM32+ESP8266(AT指令)极简WiFi驱动|串口透传、自动连热点、数据上传上位机

STM32+ESP8266(AT指令)极简WiFi驱动|串口透传、自动连热点、数据上传上位机

一、前言(为什么工控首选ESP8266 AT固件) 在物联网采集、无线监控、设备远程上报项目中,STM32本身不带网络功能,常用联网方案对比: LWIP网络栈:代码量大、配置复杂、极易内存溢出,小单片机不友好。 ESP8266 SDK开发:需要单独编程、双设备联调、开发成本高。 ESP8266 AT…

2026/7/5 13:37:29阅读更多 →
把 TeXstudio / LaTeX 工程交给 AI:texstudio-mcp 功能详解

把 TeXstudio / LaTeX 工程交给 AI:texstudio-mcp 功能详解

.tex、跑编译、看日志,而不是只会泛泛而谈,那么需要一个专门面向 LaTeX 工作流的 MCP 服务。texstudio-mcp 就是这样一层桥:它在你的工程目录(workspace_root)里安全地读写文件,按需调用本机已安装的 TeX 工…

2026/7/5 14:27:33阅读更多 →
只看 inline 关键字,如何准确判别代码属于 C 还是 C++ 语义?

只看 inline 关键字,如何准确判别代码属于 C 还是 C++ 语义?

一、 源码中 inline 关键字的排查 对项目仓库中所有 .c / .h / .cpp / .hpp 文件中的 inline 关键字进行了全面的审计与排查, 1、 核心结论 结论:确认代码库中所有的 inline 均属于标准 C 的 inline 关键字语义,未发现异常或误用的情况。统计…

2026/7/5 14:27:33阅读更多 →
FFmpeg移动端硬解机制

FFmpeg移动端硬解机制

一文看懂 FFmpeg 在 Android 和 iOS 上的硬件解码:MediaCodec、VideoToolbox 与 AVHWAccel FFmpeg 的硬解不是一个“开关”,而是一套把各平台系统解码器接进 AVPacket → AVFrame 通用流水线的抽象层。 做移动端播放器、剪辑器或转码工具时,迟…

2026/7/5 14:27:33阅读更多 →
OpCore-Simplify:让PC硬件说macOS语言的智能翻译器

OpCore-Simplify:让PC硬件说macOS语言的智能翻译器

OpCore-Simplify:让PC硬件说macOS语言的智能翻译器 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾想过,为什么在PC上…

2026/7/5 14:27:33阅读更多 →
Kafka 消息重试设计:别让失败消息原地打转

Kafka 消息重试设计:别让失败消息原地打转

Kafka 消息重试设计:别让失败消息原地打转 一、重试不是直接再消费一次 Kafka 常用于微服务解耦。消费失败时,很多代码会直接抛异常,让消息再次被消费。这样简单,但如果下游一直不可用或消息本身有问题,就会原地打转&a…

2026/7/5 14:27:33阅读更多 →
ROS集成开发环境

ROS集成开发环境

1.TER快捷键2.VS code 安装首先 在网站下载VS code,Linux最好用.deb格式下载好以后,直接拖到linux的文件夹中在这个文件夹打开终端sudo dpkg -i x.debx.deb是你的安装包名卸载代码code的代码:sudo dpkg --purge code插件里面ros现在使用robot…

2026/7/5 14:22:33阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

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

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

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

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

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

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

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/5 3:48:09阅读更多 →