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

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

题目:

题解:

int dp[100][100][100];

int calculatePoints(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] = fmax(dp[l][r][k], calculatePoints(boxes, l, i, k1 + 1) + calculatePoints(boxes, i + 1, r1 - 1, 0));
           }
        }
    }
    return dp[l][r][k];
}

int removeBoxes(int* boxes, int boxesSize) {
    memset(dp, 0, sizeof dp);
    return calculatePoints(boxes, 0, boxesSize - 1, 0);
}

http://www.kler.cn/a/388872.html

相关文章:

  • docker镜像源,亲测可用,时间2024-11-14
  • 32位、64位、x86与x64:深入解析计算机架构
  • 【C++】一种针对代码的连续条件检查方案,累计布尔结果
  • Vue 项目打包后环境变量丢失问题(清除缓存),区分.env和.env.*文件
  • 除了 Postman,还有什么好用的 API 调试工具吗
  • 【日志】392.判断子序列
  • 利用 Avalonia UI 构建 Blazor 混合应用程序
  • sql分区
  • 计算机体系结构之多级缓存、缓存miss及缓存hit(二)
  • 【LeetCode】分发糖果 解题报告
  • O-RAN简介
  • 【数学二】线性代数-线性方程组-齐次线性方程组、非齐次线性方程组
  • python的学习
  • 深度学习-神经网络基础-网络搭建-损失函数-网络优化-正则化方法
  • Ubuntu 20.04安装ROS noetic
  • 产品经理晋级-Axure中继器制作美观表格
  • 线上问题的排查之内存溢出(OOM)问题如何排查
  • 09 Oracle数据拯救:Flashback Technologies精细级数据恢复指南
  • Spring Boot 3中基于纯MyBatis的CURD开发实例
  • 嵌入式采集网关(golang版本)
  • CSS的综合应用例子(网页制作)
  • vue系列=状态管理=Pinia使用
  • 【STM32笔记】定时器(TIM1)无法工作
  • 网关 Spring Cloud Gateway
  • Hive的远程模式
  • lua入门教程:随机数