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

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 := a
    for 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.kler.cn/a/350291.html

相关文章:

  • pytorch 多机多卡训练方法
  • 微信小程序:实现单选,多选,通过变量控制单选/多选
  • React Context 实现全局组件注册
  • 2025年1月17日(点亮一个 LED)
  • 抽奖系统(4——活动模块)
  • 动态规划(多状态)
  • 【Redis】List类型常用命令
  • Linux权限和开发工具(1)
  • leetcode 1027 最长等差数列 题目的思考
  • QOwnNotes:开源界的黑马,专业人士的不二之选
  • git merge啥意思
  • 力扣3194.最小元素和最大元素的平均最小值
  • 提升效率的秘密武器:如何选择合适的编程工具
  • STM32外设应用全解析
  • 【Unity】Unity中接入Admob聚合广告平台,可通过中介接入 AppLovin,Unity Ads,Meta等渠道的广告
  • 快速理解AUTOSAR CP的软件架构层次以及各层的作用
  • 第三弹:探索网络传输中的TFTP、UDP广播与多播技术
  • 打印杨辉三角形
  • 用Cursor开发了一个图片分割器
  • 观察者模式和发布-订阅模式的区别
  • 汽车结构设计外覆盖件抗凹分析的意义和分类
  • HarmonyOS Next模拟器异常问题及解决方法
  • 信息和介质的辩证
  • 智能化企业新人培训:AI助理如何加速新员融入与成长
  • 遥感图像处理又上大分!加个多模态,一篇A会到手~
  • 洛谷P1484.种树