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

力扣每日一题【算法学习day.131】

前言

###我做这类文章一个重要的目的还是记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.用地毯覆盖后的最少白色砖块

题目链接:2209. 用地毯覆盖后的最少白色砖块 - 力扣(LeetCode)

题面:

附上灵神代码:

class Solution {
    public int minimumWhiteTiles(String floor, int numCarpets, int carpetLen) {
        int m = floor.length();
        int[][] memo = new int[numCarpets + 1][m];
        for (int[] row : memo) {
            Arrays.fill(row, -1); // -1 表示没有计算过
        }
        return dfs(numCarpets, m - 1, floor.toCharArray(), memo, carpetLen);
    }

    private int dfs(int i, int j, char[] floor, int[][] memo, int carpetLen) {
        if (j < carpetLen * i) { // 剩余砖块可以全部覆盖
            return 0;
        }
        if (memo[i][j] != -1) { // 之前计算过
            return memo[i][j];
        }
        int res = dfs(i, j - 1, floor, memo, carpetLen) + (floor[j] - '0');
        if (i > 0) {
            res = Math.min(res, dfs(i - 1, j - carpetLen, floor, memo, carpetLen));
        }
        return memo[i][j] = res; // 记忆化
    }
}

后言

共勉 

相关文章:

  • 【Erdas实验教程】009:非监督分类及分类后评价
  • TypeScript - 属性修饰符
  • Python 单例模式笔记
  • RFID测温技术:电力设备安全监测的新利器
  • 深入解析Textual库:打造现代化的终端用户界面(TUI)
  • 【Python爬虫(37)】解锁分布式爬虫:原理与架构全解析
  • 深入理解 Kafka 主题分区机制
  • JUC并发—9.并发安全集合四
  • Html5学习教程,从入门到精通,HTML5 元素语法知识点及案例代码(2)
  • 普通人使用生成式语言模型的几个阶段
  • thinkphp 框架 如何让某个接口不需要登录权限
  • Java中字符串按照反斜杠切分报错
  • 正则表达式常用记录
  • MyBatis在Spring配置文件中注册
  • Javascript网页设计案例:通过PDFLib实现一款PDF分割工具,分割方式自定义-完整源代码,开箱即用
  • Spring Boot日志配置与环境切换实战
  • python的if判断和循环语句(while循环和for循环)
  • 【Python爬虫(40)】分布式爬虫:数据一致性的破局之道
  • 《QT+PCL 第五章》点云特征-VFH
  • 如何教计算机识别视频中的人类动作
  • 在洪雅网站做企业招聘/快速网站轻松排名
  • 网站下拉箭头怎么做的/企业官网首页设计
  • 手把手教你优化网站/2024年的新闻
  • 惠州做网站首选惠州邦/app推广接单平台有哪些
  • 石家庄做外贸的网站推广/北京网站优化方式
  • 桂林做网站的公司有哪些/个人网站网页首页