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

leetcode热题 - 5

可被三整除的最大和问题描述给你一个整数数组 nums请你找出并返回能被三整除的元素 最大和。真题链接可被三整除的最大和解题思路这题的题目很简单只需要在整数数组中找到可以被三整除的元素的最大和。最简单的方法我们先将所有本身就是3的倍数的元素全部取出再在剩下的元素中按照三个余数为1的、三个余数为2的或者一个余数为1一个余数为2的组合求出最大值即可。但是操作十分复杂。所以这里笔者采用了用空间换时间的做法先将所有元素都加起来同时采用两个数组记录一下余数为1和余数为2的两个“数组”再按照从小到大的顺序进行排序。随后我们将所有数相加之和对3进行取余倘若余数为1那么我们可以选择去除一个最小的余数为1的元素或者两个最小余数为2的元素再取这两种情况之中的最大值。余数为2的情况下同理。当我们理清这样一个思路之后代码就可以很轻易的写出相关代码了。代码实现classSolution{public:intmaxSumDivThree(vectorintnums){intsum0;vectorintre1,re2;for(intnum:nums){sumnum;if(num%31)re1.push_back(num);elseif(num%32)re2.push_back(num);}if(sum%30)returnsum;sort(re1.begin(),re1.end());sort(re2.begin(),re2.end());intans0;if(sum%31){// 情况1去掉1个最小的余数为1的数if(re1.size()1)ansmax(ans,sum-re1[0]);// 情况2去掉2个最小的余数为2的数if(re2.size()2)ansmax(ans,sum-re2[0]-re2[1]);}elseif(sum%32){// 情况1去掉1个最小的余数为2的数if(re2.size()1)ansmax(ans,sum-re2[0]);// 情况2去掉2个最小的余数为1的数if(re1.size()2)ansmax(ans,sum-re1[0]-re1[1]);}returnans;}};复杂度分析复杂度量级时间复杂度O(nlogn)空间复杂度O(n)总结这道题要求从整数数组中选出若干元素使得元素和能被 3 整除并求出满足条件的最大和。核心解题思路是先统计数组全部元素总和同时把元素按对 3 取余分为余 1、余 2 两类并分别排序再根据总和模 3 的余数分类讨论通过贪心剔除最小代价元素让剩余总和可以被 3 整除。若总和余 1可删 1 个最小余 1 元素或删 2 个最小余 2 元素若总和余 2可删 1 个最小余 2 元素或删 2 个最小余 1 元素取两种情况最大值即为答案。该方法本质是数学取余 贪心策略时间复杂度O(nlogn)仅需一次遍历 少量排序逻辑简洁、实现简单在常规数据规模下可以高效通过题目测试。仅含1的子串数问题描述给你一个二进制字符串 s仅由 ‘0’ 和 ‘1’ 组成的字符串。返回所有字符都为 1 的子字符串的数目。由于答案可能很大请你将它对 10^9 7 取模后返回真题链接仅含1的子串数解题思路如果一个子串全部由 ‘1’ 组成那么它一定是某个连续 1 段的一部分。对于长度为k的连续 1 段其包含的全 1 子串个数为k*(k1)/2算法步骤初始化 cnt 0最终答案k 0当前连续 1 的个数。遍历字符串 s 的每个字符如果当前字符是 ‘0’跳过因为 ‘0’ 会打断连续段。如果当前字符是 ‘1’则用一个循环统计该段连续 ‘1’ 的长度 k直到遇到 ‘0’ 或字符串结束。将当前段贡献的子串数 k*(k1)/2 累加到 cnt并取模。随后重置 k 0继续遍历下一段。最后返回 cnt。代码实现classSolution{public:intnumSub(string s){longlongcnt0,k0;for(inti0;is.size();i){if(s[i]0)continue;while(s[i]1is.size()){i;k;}cnt(k*(k1))/2;cnt%1000000007;k0;}returncnt;}};复杂度分析复杂度量级时间复杂度O(n)空间复杂度O(1)总结本题是典型的“统计连续相同字符子串”问题关键点在于连续段分解将问题转化为对每一段连续 ‘1’ 分别计算子串数。取模处理每一步累加后立即取模防止大数溢出。边界考虑当字符串尾部是 ‘1’ 时循环结束后需统计最后一段代码中通过 while 循环自然处理了。该解法易于扩展到其他“统计连续相同字符子串”的变体问题如统计全0子串等。

相关文章:

leetcode热题 - 5

可被三整除的最大和 问题描述 给你一个整数数组 nums,请你找出并返回能被三整除的元素 最大和。 (真题链接:可被三整除的最大和) 解题思路 这题的题目很简单,只需要在整数数组中找到可以被三整除的元素的最大和。最…...

Vue-Codemirror 技术架构深度解析与高性能集成方案

Vue-Codemirror 技术架构深度解析与高性能集成方案 【免费下载链接】vue-codemirror codemirror code editor component for vuejs 项目地址: https://gitcode.com/gh_mirrors/vu/vue-codemirror 在现代化Web应用开发中,代码编辑器已成为开发者工具链中不可或…...

GTA5线上小助手:让你的洛圣都冒险更加轻松愉快

GTA5线上小助手:让你的洛圣都冒险更加轻松愉快 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 还在为GTA5线上模式的各种繁琐操作而烦恼吗?想要更高效地管理游戏角色、快速传送、…...

BilibiliDown终极指南:免费开源B站视频下载器完整使用教程

BilibiliDown终极指南:免费开源B站视频下载器完整使用教程 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirro…...

Steam游戏自动破解器:三步实现离线游戏自由的终极指南

Steam游戏自动破解器:三步实现离线游戏自由的终极指南 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否曾经遇到过这样的困扰:购买了正版Steam游戏&#x…...

高效破解城通网盘限速:免费开源工具实现40倍高速下载的完整指南

高效破解城通网盘限速:免费开源工具实现40倍高速下载的完整指南 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾因城通网盘几十KB/s的龟速下载而抓狂?面对几百MB甚至几G…...

CVE-2026-2743深度解析:SEPPmail邮件网关路径穿越RCE漏洞与企业邮件安全防线重构

一、引言:邮件网关成为企业网络安全的"阿喀琉斯之踵" 在数字化转型加速推进的今天,电子邮件依然是企业内部沟通和外部商务往来的核心渠道。据Gartner最新数据显示,全球超过90%的企业将电子邮件作为主要的业务通信工具,而…...

逆向实战:我是如何绕过大众点评WEBDFPID与_token校验的

深度解析大众点评接口安全机制与合规测试方法论 打开Chrome开发者工具,切换到Network面板,刷新大众点评的店铺列表页面。你会注意到每个XHR请求都携带了mtgsig、WEBDFPID和_token这三个关键参数。这些看似普通的字符串背后,实际上构建了一套完…...

避坑指南:Unity导出模型PNG图片时,为什么你的背景不透明、尺寸不对?

Unity模型导出PNG避坑指南:透明背景与精准尺寸的实战解法 当你需要为移动应用生成3D商品展示图,或是为技术文档制作模型示意图时,Unity的模型导出功能常常成为开发流程中的关键环节。但许多开发者都会遇到两个令人头疼的问题:导出…...

在自动化脚本中如何实现文本转语音?

在自动化脚本开发中,语音合成(文本转语音 TTS) 是提升交互体验、实现实时播报、状态反馈、任务提醒的核心能力。本文从基础原理、API 详解、环境准备、多场景 Demo 源码、调试优化、常见问题全流程讲解,助力开发者快速落地 TTS 功…...

3分钟搞定微信语音转MP3:Silk v3解码器完全指南

3分钟搞定微信语音转MP3:Silk v3解码器完全指南 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. 项目地址…...

魔兽争霸3终极优化伴侣:WarcraftHelper完整配置指南

魔兽争霸3终极优化伴侣:WarcraftHelper完整配置指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸3》在现代电脑上的各…...

fre:ac音频转换器完整指南:从新手到高手的免费音频处理方案

fre:ac音频转换器完整指南:从新手到高手的免费音频处理方案 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 还在为音频格式不兼容而烦恼吗?fre:ac音频转换器提供了完全免费的解决…...

OpenWrt包管理深度解析:手把手教你制作一个能上menuconfig的软件包(以日志服务为例)

OpenWrt软件包开发实战:从零构建符合规范的日志服务包 在OpenWrt生态中,将自定义服务封装为标准软件包是提升管理效率的关键步骤。不同于简单脚本部署,标准化打包能让你的服务无缝融入OpenWrt的配置体系——通过opkg管理生命周期、在Luci界面…...

ComfyUI-FramePackWrapper深度解析:如何通过节点化架构将视频生成性能提升300%

ComfyUI-FramePackWrapper深度解析:如何通过节点化架构将视频生成性能提升300% 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper 在AI视频生成领域,显存限制与计算效率一直是开…...

通过curl命令快速测试Taotoken大模型API的数据处理能力

通过curl命令快速测试Taotoken大模型API的数据处理能力 1. 准备工作 在开始使用curl测试Taotoken API之前,需要完成两项准备工作。首先登录Taotoken控制台,在「API密钥」页面创建一个新的密钥并复制保存。密钥格式通常为sk-开头的字符串,请…...

终极指南:Sabaki围棋软件 - 打造专业级围棋对弈与分析环境

终极指南:Sabaki围棋软件 - 打造专业级围棋对弈与分析环境 【免费下载链接】Sabaki An elegant Go board and SGF editor for a more civilized age. 项目地址: https://gitcode.com/gh_mirrors/sa/Sabaki 围棋作为一项拥有数千年历史的策略游戏,…...

告别手动调价!一文读懂广告主如何利用智能出价(oCPC/eCPA)提升投放ROI

智能出价实战指南:如何用oCPC/eCPA提升广告投放效率 在数字营销领域,广告主们正面临着一个共同的困境:流量成本不断攀升,而转化效果却难以预测。传统的手动出价模式需要运营人员全天候监控数据、频繁调整出价,既耗费人…...

将 Hermes Agent 工具链接入 Taotoken 实现自定义模型调用

将 Hermes Agent 工具链接入 Taotoken 实现自定义模型调用 1. 准备工作 在开始配置之前,请确保已安装 Hermes Agent 并具备基本的运行环境。同时需要在 Taotoken 控制台获取有效的 API Key,并在模型广场选择目标模型 ID。这两个信息将在后续配置中使用…...

Hitboxer:革新性游戏键盘重映射工具,为玩家打造零冲突操作体验

Hitboxer:革新性游戏键盘重映射工具,为玩家打造零冲突操作体验 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在当今电子竞技和游戏体验日益重要的时代,键盘输入精度和响应速…...

Python 爬虫数据处理:爬取数据格式批量转换工具实现

前言 在规模化爬虫项目落地过程中,受目标站点接口返回规则、页面源码结构、第三方数据源差异等因素影响,爬取所得原始数据往往呈现格式杂乱、类型不统一、结构异构等典型问题。单次爬虫任务通常会同时产出 HTML、XML、JSON、CSV、TXT、Excel、嵌套字典文…...

三步快速解锁:浏览器端音频解密终极指南

三步快速解锁:浏览器端音频解密终极指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gitcode.co…...

E7Helper:解放双手的第七史诗自动化助手终极指南

E7Helper:解放双手的第七史诗自动化助手终极指南 【免费下载链接】e7Helper 【Epic Seven Auto Bot】第七史诗多功能覆盖脚本(刷书签🍃,挂讨伐、后记、祭坛✌️,挂JJC等📛,多服务器支持📺&#…...

如何管理 Taotoken 的 API Key 并设置访问控制与审计

如何管理 Taotoken 的 API Key 并设置访问控制与审计 1. 创建与管理 API Key 在 Taotoken 控制台中,API Key 是访问平台服务的核心凭证。登录后进入「API 密钥」管理页面,点击「新建密钥」按钮即可生成新的 Key。系统会显示一次性的密钥字符串&#xf…...

DS4Windows终极指南:3步让PS手柄在Windows上获得完美兼容性

DS4Windows终极指南:3步让PS手柄在Windows上获得完美兼容性 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 想在Windows电脑上使用PlayStation手柄玩所有游戏吗?DS…...

C++高频交易内存池重构全纪实:从崩溃频发到99.9999%可用性,我们踩过的7个LLVM/内核级坑

更多请点击: https://intelliparadigm.com 第一章:C高频交易内存池重构的使命与全景图 在纳秒级响应要求的高频交易系统中,堆内存分配(new/malloc)已成为关键性能瓶颈。传统通用分配器引入不可预测的延迟抖动&#x…...

PvZWidescreen:植物大战僵尸宽屏适配终极指南

PvZWidescreen:植物大战僵尸宽屏适配终极指南 【免费下载链接】PvZWidescreen Widescreen mod for Plants vs Zombies 项目地址: https://gitcode.com/gh_mirrors/pv/PvZWidescreen 你是否还在忍受《植物大战僵尸》两侧恼人的黑边?经典游戏与现代…...

NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的完全指南

NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的完全指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款强大的开源工具,专为深度挖掘NVI…...

2026届最火的五大AI论文网站实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 依赖自然语言处理以及学术知识图谱技术的这个AI开题报告工具,可为用户给予有力支…...

告别低效code review,用快马ai生成智能工具提升gitlab协作效率

最近在团队协作中,我发现GitLab的Code Review环节经常成为效率瓶颈。每次面对几十个文件的变更,要逐行检查代码逻辑、风格规范、测试覆盖等情况,不仅耗时耗力,还容易遗漏关键问题。于是我开始思考:能不能用AI工具来辅助…...