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

LeetCode讲解篇之2606. 找到最大开销的子字符串

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题解链接

题目描述

在这里插入图片描述

题解思路

本题可以转换成求字符串s可以转换成一个数组f,数组f中每个元素为字符串s中相同位置字符的开销,本题就可以转换成求数组f的最大子数组和
设数组dp中第i号元素表示以s[i]为结尾的子字符串最大开销
那么dp[i] = max(dp[i - 1], 0) + f[i])
即如果dp[i - 1]为负数时,以s[i]为结尾的最大子串开销为f[i]
即如果dp[i - 1]为正数时,以s[i]为结尾的最大子串开销为以s[i - 1]为结尾的最大字串开销加上f[i]

题解代码

func maximumCostSubstring(s string, chars string, vals []int) int {values := [26]int{}for i := 0; i < 26; i++ {values[i] = i + 1}for i := 0; i < len(vals); i++ {values[chars[i] - 'a'] = vals[i]}n := len(s)a := max(values[s[0] - 'a'], 0)ans := afor i := 1; i < n; i++ {a = max(a, 0) + values[s[i] - 'a']ans = max(ans, a)}return ans
}

题解链接

https://leetcode.cn/problems/find-the-substring-with-maximum-cost/


http://www.mrgr.cn/news/49154.html

相关文章:

  • 攻防世界17-php_rce-CTFWeb进阶
  • 算法_校园最短路径漫游设计
  • 拆解学习【STC宏晶MCU-CM1020电池保护】(一)
  • rpc中常用的数据格式:Protobuf 图文详解
  • 股票做T如何选择买卖点,股票做T时,怎样综合判断买卖点?
  • 连接数据库和基本信息查询的详细理解和实际操作
  • 从0到1,一篇文章彻底讲透AI的Token到底是什么?如何实际应用
  • 深入理解 Transformer:构建先进 NLP 模型的关键技术
  • 物联网5G模块WIFI模块调式记录(Pico)
  • 【JAVA-数据结构】二叉树
  • 一个月学会Java 第13天 抽象类与接口
  • 如何将docker容器中的软件安装到singularity容器中?
  • 联合查询(详细篇)
  • MediaRecorder + Camera2循环录制视频
  • 企业架构之从理论指南到实践指导企业数字化转型
  • 将图片添加到 PDF 的 5 种方法
  • 架构设计笔记-8-系统质量属性与架构评估
  • SSH隧道验证的原理及实现例子
  • E40.【C语言】练习:有关栈帧的讨论(反汇编分析)
  • 基于Raspberry Pi人脸识别自动门