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

2026-04-29:二进制交换后的最大分数。用go语言,给定一个长度为 n 的整数数组 nums 和一个长度相同的二进制字符串 s。 初始得分为 0。对于字符串中每个位置上字符为 ‘1‘ 的下标 i

2026-04-29二进制交换后的最大分数。用go语言给定一个长度为 n 的整数数组 nums 和一个长度相同的二进制字符串 s。初始得分为 0。对于字符串中每个位置上字符为 ‘1’ 的下标 i分数都会加上 nums[i]。你可以进行任意次操作也可以一次都不做。每次操作时可以选择一个位置 i0 i n - 1要求 s[i] ‘0’ 且 s[i 1] ‘1’然后把这两个字符交换。请计算并返回经过这些操作后能够得到的最高分数。n nums.length s.length。1 n 100000。1 nums[i] 1000000000。s[i] 是 ‘0’ 或 ‘1’。输入 nums [2,1,5,2,3], s “01010”。输出 7。解释我们可以执行以下交换操作在下标 i 0 处交换“01010” 变为 “10010”在下标 i 2 处交换“10010” 变为 “10100”下标 0 和 2 包含 ‘1’贡献的分数为 nums[0] nums[2] 2 5 7。这是可以获得的最大分数。题目来自力扣3781。解题过程详细解析先明确核心规则初始分数所有s中为1的位置直接加对应nums值允许操作只能交换相邻的0和1要求左边是0、右边是1可以交换任意次本质1可以向左移动到任意0的位置因为多次相邻交换能让1持续左移我们的目标是让1停在数值最大的位置上最大化总分。输入示例nums [2, 1, 5, 2, 3]s 0 1 0 1 0下标0~4初始s中1的位置下标1、下标3。一、整体解题思路我们从右向左遍历数组从最后一个元素往第一个元素走配合最小堆实现最优选择最小堆的作用存储当前已选中的1对应的数值堆顶永远是最小的那个数遍历规则遇到s[i]1必须选这个位置数值加入总分同时放入最小堆遇到s[i]0这个位置可以放一个1因为1能左移过来如果当前位置的数值 堆里最小的数就替换用更大的数替换堆里最小的数总分也同步更新只加差值最终堆里保留的就是k个最大的数k是原字符串中1的个数总和就是最大分数。二、分步骤详细过程对应示例遍历原数组下标0(2)、下标1(1)、下标2(5)、下标3(2)、下标4(3)原字符串0、1、0、1、0原1的数量2个最终必须选2个位置放1遍历方向从下标4 → 下标0步骤1遍历下标4数值3s‘0’当前堆为空没有可以替换的数不做任何操作。步骤2遍历下标3数值2s‘1’这是必须选的1总分 2当前总分2把数值2放入最小堆堆[2]堆顶是2。步骤3遍历下标2数值5s‘0’这是0的位置可以放1比较当前数5 堆顶最小值2执行替换总分 5-2 3总分235用5替换堆顶的2堆调整为[5]堆顶是5。步骤4遍历下标1数值1s‘1’这是必须选的1总分 1当前总分516把数值1放入最小堆堆[1,5]堆顶是最小的1。步骤5遍历下标0数值2s‘0’这是0的位置可以放1比较当前数2 堆顶最小值1执行替换总分 2-11总分617用2替换堆顶的1堆调整为[2,5]堆顶是2。三、最终结果遍历结束总分7和题目示例输出完全一致。最终选中的两个位置下标02、下标25总和257。四、复杂度分析1. 时间复杂度遍历数组O(n)n是数组长度每个元素仅遍历一次堆操作每个元素最多入堆、出堆、调整堆各一次堆的大小最大为k原1的个数单次堆操作O(logk)总时间复杂度O(n log n)logk ≤ logn是最优可接受复杂度。2. 额外空间复杂度仅使用了一个最小堆存储元素堆的最大空间为k原1的个数总额外空间复杂度O(n)最坏情况全是1堆大小为n。总结核心逻辑从右向左遍历用最小堆动态保留最大的k个数值k原1的数量操作本质利用规则让1左移替换掉更小的数值实现分数最大化复杂度时间O(n log n)空间O(n)能高效处理n≤1e5的大数据量。Go完整代码如下packagemainimport(container/heapfmtsort)funcmaximumScore(nums[]int,sstring)(ansint64){h:hp{}// Traverse from the end to the beginningfori:len(nums)-1;i0;i--{x:nums[i]ifs[i]1{ansint64(x)heap.Push(h,x)}elseifh.Len()0xh.IntSlice[0]{ansint64(x-h.IntSlice[0])h.IntSlice[0]x heap.Fix(h,0)}}return}typehpstruct{sort.IntSlice}func(h*hp)Push(v any){h.IntSliceappend(h.IntSlice,v.(int))}func(hp)Pop()(_any){return}funcmain(){nums:[]int{2,1,5,2,3}s:01010result:maximumScore(nums,s)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-importheapqdefmaximumScore(nums,s):ans0h[]# min heap# Traverse from the end to the beginningforiinrange(len(nums)-1,-1,-1):xnums[i]ifs[i]1:ansx heapq.heappush(h,x)elifhandxh[0]:ansx-h[0]heapq.heapreplace(h,x)# pop smallest and push xreturnansdefmain():nums[2,1,5,2,3]s01010resultmaximumScore(nums,s)print(result)if__name____main__:main()C完整代码如下#includeiostream#includevector#includestring#includequeue#includealgorithmusingnamespacestd;longlongmaximumScore(vectorintnums,string s){longlongans0;// Min heap using greaterintpriority_queueint,vectorint,greaterintpq;// Traverse from the end to the beginningfor(intinums.size()-1;i0;i--){intxnums[i];if(s[i]1){ansx;pq.push(x);}elseif(!pq.empty()xpq.top()){ansx-pq.top();pq.pop();pq.push(x);}}returnans;}intmain(){vectorintnums{2,1,5,2,3};string s01010;longlongresultmaximumScore(nums,s);coutresultendl;return0;}

相关文章:

2026-04-29:二进制交换后的最大分数。用go语言,给定一个长度为 n 的整数数组 nums 和一个长度相同的二进制字符串 s。 初始得分为 0。对于字符串中每个位置上字符为 ‘1‘ 的下标 i

2026-04-29:二进制交换后的最大分数。用go语言,给定一个长度为 n 的整数数组 nums 和一个长度相同的二进制字符串 s。 初始得分为 0。对于字符串中每个位置上字符为 ‘1’ 的下标 i,分数都会加上 nums[i]。 你可以进行任意次操作,…...

流程型制造业生产优化,未来将如何被大模型技术重构?2026智造深研:实在Agent驱动端到端生产闭环

在2026年的工业版图中,流程型制造业——涵盖化工、冶金、石化、能源等支柱产业,正经历着自工业4.0以来最深刻的范式转移。过去,这些行业依赖于高度确定的工艺包和基于规则的自动化系统;而现在,大模型技术正从底层逻辑上…...

GitHub爆火!国内首个大模型实践教程《Dive into LLMs》,带你从零掌握大模型核心技术

最近,GitHub上一个名为"Dive into LLMs"的项目火了!短短时间内获得数千星标,成为大模型学习者的新宠。这究竟是什么样的神仙项目?为什么能在众多教程中脱颖而出?Dive into LLMs简介 Dive into LLMs 是由上海…...

vLLM-v0.11.0对比评测:为什么说它是LLM推理的“性能王者”?

vLLM-v0.11.0对比评测:为什么说它是LLM推理的"性能王者"? 1. 引言:大模型推理的新标杆 在大语言模型应用爆发的今天,推理效率直接决定了产品的用户体验和运营成本。传统推理框架在处理高并发请求时,往往会…...

打包 Android beeware briefcase

#安装 Android SDK,然后执行: briefcase create android briefcase build android *briefcase run android #连接安卓手机或模拟器运行 briefcase package android #打包为.APK...

一年读完12本书,硬核搞定AI大模型入门!建议收藏!

本文推荐了12本AI大模型入门必读好书,涵盖GPT系列、Transformer架构、大模型应用开发、AIGC、LangChain等核心技术,适合深度学习基础者及研究生。书籍内容从基础理论到前沿进展,结合实际案例,帮助读者全面了解大模型技术&#xff…...

算法第十八天

20. 有效的括号 题目链接:https://leetcode.cn/problems/valid-parentheses/ 视频讲解链接:https://www.bilibili.com/video/BV1AF411w78g 1.看到题目第一想法:我想着可以用一个东西来存左括号,等遇到右括号的时候,…...

Real-Anime-Z训练数据准备:YOLOv8辅助的动漫图像自动标注方案

Real-Anime-Z训练数据准备:YOLOv8辅助的动漫图像自动标注方案 1. 引言 动漫角色识别与生成一直是AI领域的热门研究方向,但高质量的训练数据获取却是个令人头疼的问题。传统的人工标注方式不仅耗时费力,成本也居高不下。以Real-Anime-Z这样的…...

终极Windows图像查看器:为什么90%的用户选择ImageGlass替代自带软件?

终极Windows图像查看器:为什么90%的用户选择ImageGlass替代自带软件? 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 在数字图像日益丰富的今天&…...

Qwen3-14B私有部署镜像:使用Visio进行系统架构图智能设计与文档生成

Qwen3-14B私有部署镜像:使用Visio进行系统架构图智能设计与文档生成 1. 场景痛点:传统架构设计的效率瓶颈 在系统架构设计工作中,工程师们常常面临这样的困境:明明脑海中有清晰的架构思路,却要花费大量时间在Visio中…...

凌晨两点数据库主从延迟告警,我用 binlog + pt-query-digest 在十分钟内还原了事故链

凌晨两点数据库主从延迟告警,我用 binlog pt-query-digest 在十分钟内还原了事故链 凌晨两点十七分,手机震醒我的不是闹钟,是 PagerDuty。主从延迟 38 秒,还在涨。我第一反应不是慌张,是兴奋——终于来了个能写进简历…...

OMC - 16 让 Claude 真正“记住你”:oh-my-claudecode 的多层记忆与状态管理实践

文章目录Pre一、问题背景:LLM 的“记忆错觉”二、整体架构:四种记忆表面 生命周期编排2.1 四个记忆子系统2.2 生命周期驱动的记忆流水线三、项目记忆:让模型真正理解你的项目3.1 核心数据模型:对项目环境的结构化刻画3.2 启动时的…...

企业安全风险管理新方法:RRR框架解析与应用

1. 企业安全风险管理的新视角:Riches, Ruins & Regulations方法解析在当今数字化时代,企业安全团队面临着一个根本性挑战:如何在有限的资源下,有效保护那些真正可能摧毁企业的关键业务风险?传统安全评估方法往往陷…...

HunyuanVideo-Foley 性能调优:基于YOLOv11思想优化模型推理流程

HunyuanVideo-Foley 性能调优:基于YOLOv11思想优化模型推理流程 1. 效果亮点开场 在音频生成领域,推理速度往往是决定用户体验的关键因素。最近我们尝试将YOLOv11视觉模型中的优化思想迁移到HunyuanVideo-Foley音频生成模型上,取得了令人惊…...

Spring Boot 异步任务调度

Spring Boot 异步任务调度:提升应用性能的利器 在现代Web应用中,高并发和快速响应是开发者追求的核心目标之一。Spring Boot作为Java生态中最流行的框架之一,其异步任务调度功能为开发者提供了一种高效处理耗时任务的解决方案。通过异步执行…...

DeEAR在有声书制作中的应用:主播语音韵律丰富度自动评分与优化建议

DeEAR在有声书制作中的应用:主播语音韵律丰富度自动评分与优化建议 1. 引言:有声书制作中的语音质量挑战 有声书行业近年来蓬勃发展,但高质量的有声内容制作面临一个关键瓶颈:如何快速评估和提升主播的语音表现力。传统方法依赖…...

2025届毕业生推荐的降AI率方案推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 对准维普系统展现出的 AI 检测特征,我方用心选用文本重组跟术语替换策略。具体来…...

AMD Ryzen嵌入式单板计算机PCSF51工业应用解析

1. DFI PCSF51工业级单板计算机概述DFI PCSF51是一款采用AMD Ryzen Embedded R2000系列处理器的1.8英寸工业级单板计算机(SBC)。这款名片大小的板卡专为空间受限的工业应用场景设计,在仅8455mm的紧凑尺寸内集成了强大的计算性能与丰富的I/O接口。作为DFI GHF51的升级…...

ai学习之在云端训练一个模型

平台:魔塔 https://www.modelscope.cn/ 在上面创建一个notebook 配置环境 pip install "transformers>4.57" "qwen_vl_utils>0.0.14" pip install "ms-swift>3.9.1" pip install modelscope 下载模型 modelscope download …...

远程容器SSH调试失败、端口转发异常、GPU无法调用?(Dev Containers 生产就绪 checklist v2.3.1)

更多请点击: https://intelliparadigm.com 第一章:远程容器SSH调试失败、端口转发异常、GPU无法调用?(Dev Containers 生产就绪 checklist v2.3.1) 当 Dev Containers 在远程开发场景中出现 SSH 连接中断、本地端口无…...

为什么92%的MCP插件在VS Code 1.89+版本崩溃?——基于17个真实生产环境日志的协议兼容性根因分析

更多请点击: https://intelliparadigm.com 第一章:MCP协议演进与VS Code 1.89版本兼容性断层全景图 MCP(Microsoft Code Protocol)并非官方命名,而是开发者社区对 VS Code 扩展宿主通信机制的泛称,特指自 …...

变量声明改成文本格式

开题日期:2026.4.28 更新日期:2026.4.28 文章目录一、常规的显示界面二、设置后的显示界面三、设置方法前言 SCL 一、常规的显示界面 二、设置后的显示界面 FUNCTION_BLOCK "块_2"VAR_INPUTEND_VARVAR_OUTPUTEND_VARVAR_IN_OUTEND_VARVAREND_V…...

Phi-3.5-mini-instruct多场景落地:覆盖办公、教育、政务、研发四大高频需求

Phi-3.5-mini-instruct多场景落地:覆盖办公、教育、政务、研发四大高频需求 1. 模型简介与核心能力 Phi-3.5-mini-instruct是一款专为中文场景优化的轻量级文本生成模型,采用网页封装设计,用户无需编写任何代码即可直接使用。该模型在保持轻…...

TC39x芯片SRAM守护神MTU全解析:从SSH硬件结构到ECC/MBIST的避坑指南

TC39x芯片SRAM守护神MTU全解析:从SSH硬件结构到ECC/MBIST的避坑指南 在汽车电子领域,TC39x系列芯片凭借其高可靠性和强大的功能安全特性,已成为众多高端汽车电子控制单元的核心。作为芯片内存系统的"守护神",MTU&#x…...

大语言模型推理的硬件优化与HBF技术解析

1. 大语言模型推理的硬件挑战现状大语言模型(LLM)推理正面临前所未有的硬件挑战。作为从业超过15年的AI基础设施工程师,我见证了从早期神经网络到如今千亿参数模型的演进过程。当前最先进的GPT-4类模型,单次推理需要处理高达数万亿…...

告别点灯!用LVGL在ESP32上快速打造智能家居UI(基于LVGL官方ESP32端口)

告别点灯!用LVGL在ESP32上快速打造智能家居UI 在智能家居设备井喷的今天,一块反应灵敏、界面友好的控制面板往往能成为产品的核心竞争力。但传统嵌入式UI开发需要从底层寄存器开始配置显示屏,再逐个像素绘制界面元素——这种"点灯式&quo…...

real-anime-z多场景落地:同人创作、轻小说配图、社交平台头像批量生成

real-anime-z多场景落地:同人创作、轻小说配图、社交平台头像批量生成 1. 平台介绍与核心价值 real-anime-z是一款专为二次元内容创作设计的文生图工具,基于Tongyi-MAI/Z-Image基础模型和Devilworld/real-anime-z风格模型构建。这个开箱即用的解决方案让…...

代码随想录算法训练营第四十二天|LeetCode 188 买卖股票的最佳时机 IV、LeetCode 309 最佳买卖股票时机含冷冻期、LeetCode 714 买卖股票的最佳时机含手续费

参考文章均来自代码随想录 LeetCode 188 买卖股票的最佳时机 IV 参考文章链接 给你一个整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xf…...

Phi-3.5-mini-instruct效果展示:256 tokens内精准归纳长文本,实测对比效果

Phi-3.5-mini-instruct效果展示:256 tokens内精准归纳长文本,实测对比效果 1. 模型核心能力解析 Phi-3.5-mini-instruct作为一款轻量级文本生成模型,在中文处理领域展现出令人惊喜的表现。经过实测,该模型最突出的能力在于精准归…...

【实践】Monorepo 工程化:沉淀可复用的配置规则

一、背景介绍 在上次完成最小可用 Vue Monorepo 之后,我们遇到一个关键问题:配置一旦被复制成 N 份,就不再是统一规范,而是会各自独立演化的副本。 Monorepo 提供了更优雅的方案:把配置本身当作 npm 包发布到 workspace 内部,其他包通过继承这些配置来生效。例如 TypeS…...