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

C++ | Leetcode C++题解之第546题移除盒子

题目:

题解:

class Solution {
public:int dp[100][100][100];int removeBoxes(vector<int>& boxes) {memset(dp, 0, sizeof dp);return calculatePoints(boxes, 0, boxes.size() - 1, 0);}int calculatePoints(vector<int>& boxes, int l, int r, int k) {if (l > r) {return 0;}if (dp[l][r][k] == 0) {int r1 = r, k1 = k;while (r1 > l && boxes[r1] == boxes[r1 - 1]) {r1--;k1++;}dp[l][r][k] = calculatePoints(boxes, l, r1 - 1, 0) + (k1 + 1) * (k1 + 1);for (int 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];}
};

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

相关文章:

  • Elasticsearch和Lucene之间是什么关系?(ChatGPT回答)
  • python数据结构基础(6)
  • 第二话:JS中new操作符的原理
  • 【工具分享】777勒索病毒解密工具
  • webrtc前端播放器完整案例
  • 英伟达的cuda和人工智能快车
  • Docker部署Redis主从复制
  • 看了《逆行人生》,我想到的是程序员的出路不只有外卖员,转型自媒体博主:或许是技术与内容的双向奔赴
  • Golang | Leetcode Golang题解之第546题移除盒子
  • 【划分型 DP】力扣139. 单词拆分
  • C++类的多重继承演示
  • 一文透彻了解电容
  • 机器学习(五)——支持向量机SVM(支持向量、间隔、正则化参数C、误差容忍度ε、核函数、软间隔、SVR、回归分类源码)
  • 解决中文乱码问题:常见原因与解决方案
  • 【我的世界】宠物不认我了?怎么更换主人?(Java版)
  • STM32外设应用研究
  • 【系统集成项目管理工程师教程】第14章 收尾过程组
  • 【系统集成项目管理工程师教程】第13章 监控过程组
  • 电路原理:电阻桥。
  • 深入掌握高级SQL技巧
  • leetcode hot100【LeetCode 78. 子集】java实现
  • 二分查找习题篇(上)
  • Nextjs14记录
  • 认识软件测试
  • ◇【论文_20160610】Generative Adversarial Imitation Learning 【附录 A】
  • 大模型学习笔记------CLIP模型解读与思考