剑指offer计划29(动态规划困难)—java

1.1、题目1

剑指 Offer 19. 正则表达式匹配

1.2、解法

动态规划后面再研究

1.3、代码

class Solution {
    public boolean isMatch(String s, String p) {
        int m = s.length() + 1, n = p.length() + 1;
        boolean[][] dp = new boolean[m][n];
        dp[0][0] = true;
        for(int j = 2; j < n; j += 2)
            dp[0][j] = dp[0][j - 2] && p.charAt(j - 1) == '*';
        for(int i = 1; i < m; i++) {
            for(int j = 1; j < n; j++) {
                dp[i][j] = p.charAt(j - 1) == '*' ?
                    dp[i][j - 2] || dp[i - 1][j] && (s.charAt(i - 1) == p.charAt(j - 2) || p.charAt(j - 2) == '.') :
                    dp[i - 1][j - 1] && (p.charAt(j - 1) == '.' || s.charAt(i - 1) == p.charAt(j - 1));
            }
        }
        return dp[m - 1][n - 1];
    }
}

2.1、题目2

剑指 Offer 49. 丑数

2.2、解法

这题看题解才做出来的,不太懂动态规划,最近研究以下。

2.3、代码


class Solution {
    public int nthUglyNumber(int n) {
        int a=0,b=0,c=0;
        int []dp = new int[n];
        dp[0]=1;
        for(int i=1;i

3.1、题目3

剑指 Offer 60. n个骰子的点数

3.2、解法

3.3、代码


class Solution {
    public double[] dicesProbability(int n) {
        double[] dp = new double[6];
        Arrays.fill(dp, 1.0 / 6.0);
        for (int i = 2; i

Original: https://www.cnblogs.com/cxykhaos/p/15353127.html
Author: 程序员khaos
Title: 剑指offer计划29(动态规划困难)—java

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714712/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Windows Server 开启远程桌面

    工作中不可避免地经常要用到WindowsServer,为了使用的方便,配置了远程桌面,这里记录一下远程桌面配置过程中遇到的一些问题以及解决方法。 Windows Server200…

    技术杂谈 2023年7月11日
    098
  • C#11file关键字

    C#11添加了文件作用域类型功能:一个新的 file修饰符,可以应用于任何类型定义以限制其只能在当前文件中使用。 这样,我们可以在一个项目中拥有多个同名的类。 通过下面的项目显示,…

    技术杂谈 2023年7月24日
    070
  • K8s配置存活、就绪和启动探测器

    这篇文章介绍如何给容器配置存活、就绪和启动探测器。 kubelet 使用 存活探测器来知道什么时候要重启容器。 例如,存活探测器可以捕捉到死锁(应用程序在运行,但是无法继续执行后面…

    技术杂谈 2023年5月30日
    081
  • JAVA8-Lambda-forEach遍历List/Map

    一、遍历List 代码示例 public static void main(String[] args) { List list = Arrays.asList("北&q…

    技术杂谈 2023年7月24日
    069
  • spring中bean的生命周期

    bean生命周期简易版 生命周期:1、创建对象(实例化) 生命周期:2、依赖注入(为属性赋值) 生命周期:3、初始化(需要通过bean中init-method属性指定初始化方法) …

    技术杂谈 2023年7月11日
    067
  • 每天一个 HTTP 状态码 205

    205 Reset Content 表示服务器成功地处理了客户端的请求,要求客户端… 205 Reset Content 205 Reset Content 表示服务器…

    技术杂谈 2023年7月11日
    069
  • 你没用过的mvn命令

    mvn -X -U 作者:习惯沉淀 如果文中有误或对本文有不同的见解,欢迎在评论区留言。 如果觉得文章对你有帮助,请点击文章右下角【推荐】一下。您的鼓励是博主的最大动力! 扫码关注…

    技术杂谈 2023年6月1日
    084
  • [AWS] Solve Error: Lambda Options Request UnAuthorized

    If you configure CORS (Cross-Origin Resource Sharing) for an API, API Gateway automaticall…

    技术杂谈 2023年5月30日
    0118
  • Chrome浏览器对标签进行整理和分组

    首先要升级到比较新的chrome版本,比如要81版本以上才可以 在打开页面的title上右击,弹出选项”Add Tab to Group”添加标签到分组,选…

    技术杂谈 2023年5月31日
    0131
  • celery 启动beat出现报错ERROR: Pidfile (celerybeat.pid) already exists.

    前言 启动celery beat出现报错Pidfile (celerybeat.pid) already exists. 看这个报错说是Pidfile 文件 ‘cele…

    技术杂谈 2023年5月30日
    092
  • 自动安装驱动程序代码

    DWORD GetServiceInfFilePath_Passthru( LPTSTR lpFilename, DWORD nSize ) { // Get Path to Th…

    技术杂谈 2023年5月31日
    089
  • 基础篇:一文讲懂树莓派命令行文本编辑工具Vim的使用

    简介 众所周知,在Linux系统下的命令行调试界面,经常会遇到需要文本编辑的情况,而树莓派官方系统默认自带了Nano编辑器,Nano的操作门槛更低,但却不如Vim编辑器方便。Vim…

    技术杂谈 2023年7月23日
    080
  • docker

    一.Docker入门 1. Docker 为什么会出现 Docker是基于Go语言开发的!开源项目 4.1. 虚拟化技术的缺点 资源占用十分多 冗余步骤多 启动很慢 2.2. 容器…

    技术杂谈 2023年7月10日
    070
  • html大文件传输解决方案

    1、介绍enctype enctype 属性规定发送到服务器之前应该如何对表单数据进行编码。 enctype作用是告知服务器请求正文的MIME类型(请求消息头content-typ…

    技术杂谈 2023年5月30日
    084
  • ajax请求地址后加随机数防止浏览器缓存

    看到别人写的JS,ajax请求地址后加随机参数,比如XXXX?t= + new Date().getTime()。 一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存。浏览器为…

    技术杂谈 2023年6月1日
    093
  • 特殊数表

    来自 command_block,为了适应 cnblogs 做了一些改动 . 以下是原文: 包括负数的二项式系数 (杨辉三角) ( \def\tinyS #1#2{\tiny\be…

    技术杂谈 2023年7月23日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球