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

Golang | Leetcode Golang题解之第546题移除盒子

题目:

题解:

func removeBoxes(boxes []int) int {dp := [100][100][100]int{}var calculatePoints func(boxes []int, l, r, k int) intcalculatePoints = func(boxes []int, l, r, k int) int {if l > r {return 0}if dp[l][r][k] == 0 {r1, k1 := r, kfor r1 > l && boxes[r1] == boxes[r1 - 1] {r1--k1++}dp[l][r][k] = calculatePoints(boxes, l, r1 - 1, 0) + (k1 + 1) * (k1 + 1)for i := l; i < r1; i++ {if boxes[i] == boxes[r1] {dp[l][r][k] = max(dp[l][r][k], calculatePoints(boxes, l, i, k1 + 1) + calculatePoints(boxes, i + 1, r1 - 1, 0))}}}return dp[l][r][k]}return calculatePoints(boxes, 0, len(boxes) - 1, 0)
}func max(x, y int) int {if x > y {return x}return y
}

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

相关文章:

  • 【开发工具——依赖管理工具——Maven】
  • Autosar NvM规范导读工作原理与实现代码剖析
  • Docsify文档编辑器:Windows系统下个人博客的快速搭建与发布公网可访问
  • 通用型蜂鸣器驱动函数
  • ubuntu 22.04 server 安装 和 初始化 LTS
  • 5G NR物理层|5G PHY层概述
  • 【划分型 DP】力扣139. 单词拆分
  • C++类的多重继承演示
  • 一文透彻了解电容
  • 机器学习(五)——支持向量机SVM(支持向量、间隔、正则化参数C、误差容忍度ε、核函数、软间隔、SVR、回归分类源码)
  • 解决中文乱码问题:常见原因与解决方案
  • 【我的世界】宠物不认我了?怎么更换主人?(Java版)
  • STM32外设应用研究
  • 【系统集成项目管理工程师教程】第14章 收尾过程组
  • 【系统集成项目管理工程师教程】第13章 监控过程组
  • 电路原理:电阻桥。
  • 深入掌握高级SQL技巧
  • leetcode hot100【LeetCode 78. 子集】java实现
  • 二分查找习题篇(上)
  • Nextjs14记录
  • 认识软件测试
  • ◇【论文_20160610】Generative Adversarial Imitation Learning 【附录 A】
  • 大模型学习笔记------CLIP模型解读与思考
  • NAT网络工作原理和NAT类型
  • Docker启动gitlab后22端口被占用如何解决
  • Swift 开发教程系列 - 第9章:错误处理