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

第 173 场双周赛Q3——3796. 找到带限制序列的最大值

题目链接:3796. 找到带限制序列的最大值(中等)

算法原理:

解法:双向约束传递

10ms击败54.10%

时间复杂度O(N)

①初始化约束数组:创建数组maxA记录每个位置的最大可行值,初始设为极大值(表示无约束),并固定a[0]=0
②应用硬限制:将restrictions中指定位置idx的最大允许值直接赋值给maxA[idx],优先满足显式位置限制
③左到右约束传递:遍历序列(从 1 到 n-1),确保每个位置i满足 a[i] ≤ a[i-1] + diff[i-1],取maxA[i]与该约束值的较小值更新maxA[i](保证不违反左到右的差值约束)
④右到左约束传递:反向遍历序列(从 n-2 到 0),确保每个位置i满足 a[i] ≤ a[i+1] + diff[i],同样取较小值更新maxA[i](保证不违反右到左的差值约束)
⑤计算最终结果:遍历maxA数组,取所有值中的最大值(且保证非负),转为 int 返回

Java代码:

class Solution { public int findMaxVal(int n, int[][] restrictions, int[] diff) { //初始化每个位置的最大可能值为极大值 long[] maxA=new long[n]; Arrays.fill(maxA,Long.MAX_VALUE); //初始条件:a[0]=0; maxA[0]=0; //应用限制条件:restrictions中的位置idx不能超过maxVal for(int[] r:restrictions){ int idx=r[0]; int maxVal=r[1]; maxA[idx]=maxVal; } //从左到右遍历:约束a[i]<=a[i-1]+diff[i-1] for(int i=1;i<n;i++) if(maxA[i-1]!=Long.MAX_VALUE) maxA[i]=Math.min(maxA[i],maxA[i-1]+diff[i-1]); //从右到左遍历:约束a[i]<=a[i+1]+diff[i] for(int i=n-2;i>=0;i--) if(maxA[i]!=Long.MAX_VALUE) maxA[i]=Math.min(maxA[i],maxA[i+1]+diff[i]); //计算序列中的最大值(保证非负) long maxVal=0; for(long val:maxA) maxVal=Math.max(maxVal,Math.max(val,0)); return (int)maxVal; } }
http://www.jsqmd.com/news/201470/

相关文章:

  • 增强提示词套件核心板
  • 3分钟极速安装IDEA:这些技巧让你快人一步
  • 零基础学Flutter:用快马完成第一个APP
  • 【计算机毕业设计案例】基于卷神经网络的鞋面缺陷识别
  • WebGL开发效率提升:从3天到3小时的秘诀
  • 零基础跟美女学Python:第一天就会写代码
  • 深度学习毕设项目:深度学习基于python_CNN卷积神经网络训练识别苹果是否成熟
  • YAKIT:AI如何革新渗透测试与安全开发
  • 提升开发效率:避免JavaScript内存问题的5个技巧
  • 对比传统方法:AI处理0X0000011B错误快10倍
  • SQL Server 2012一键安装:比传统方式快10倍
  • 2026,企业为何需办理腾讯地图商业授权?
  • AI助力JDK 1.8下载与配置:智能解决环境搭建难题
  • 深度学习毕设项目:基于python_CNN卷积神经网络识别花卉是否枯萎
  • 与非门在物联网设备中的5个创新应用
  • 震惊!酶制剂加工厂排行曝光,这5家千万不能错过!
  • AI大模型:基于python动漫推荐系统 漫画 番剧 动漫数据分析 可视化 漫画推荐 协同过滤推荐算法 Django框架 大数据✅
  • 1小时打造智能家居中心:IMMORTALWRT原型开发
  • 如何用AI快速开发TRAE国际版多语言应用
  • 深度学习毕设项目:卷神经网络 基于python_CNN卷积神经网络识别花卉是否绽放
  • 零基础入门FLYWAY:10分钟搞定数据库版本控制
  • unity部署HoloLens2步骤
  • AI大模型:大数据旅游景点推荐系统 机器学习算法 协同过滤推荐算法 数据分析 可视化 django框架 大数据毕业设计 基于用户+基于物品✅
  • AI大模型:基于大数据动漫数据分析可视化系统 漫画 番剧 知音漫客 Django框架 requests爬虫 大数据毕业设计(建议收藏)✅
  • 用DIFY本地部署快速验证你的AI创意
  • KETTLE vs 手工编码:ETL效率大比拼
  • 深度学习毕设选题推荐:基于卷神经网络识别草莓和其他
  • 3分钟解决浏览器管理限制:效率提升方案
  • AI大模型机器学习:python热门旅游景点大数据分析系统 可视化 贝叶斯预测算法 计算机毕业设计✅
  • 对比评测:5种NACOS下载安装方案效率大比拼