Day47 算法记录|动态规划14子序列

news2024/9/22 13:43:15

子序列

  • 1143. 最长公共子序列
  • 1035.不相交的线
  • 53. 最大子数组和

1143. 最长公共子序列

这道题和718. 最长重复子数组的区别:这道题的子序列可以不连续
在这里插入图片描述这个视频讲解的很好

class Solution {
    public int longestCommonSubsequence(String text1, String text2) {
     char[] A = text1.toCharArray();
     char[] B = text2.toCharArray();

     int[][] dp = new int[A.length+1][B.length+1];
     for(int i=1;i<=A.length;i++){
         for(int j =1; j<=B.length;j++){
             if(A[i-1] == B[j-1]){
                 dp[i][j] = dp[i-1][j-1]+1;
             }else{
                 dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);
             }
         }
     }
   return dp[A.length][B.length];

    }
}

1035.不相交的线

和上面一道题一摸一样
以绘制连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且直线不与任何其他连线(非水平线)相交。
在这里插入图片描述

class Solution {
    public int maxUncrossedLines(int[] A, int[] B) {
    
    int[][] dp = new int[A.length+1][B.length+1];
    for(int i=1;i<=A.length;i++){
        for(int j=1;j<=B.length;j++){
            if(A[i-1] == B[j-1]){
                dp[i][j] = dp[i-1][j-1]+1;
            }else{
                dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);
            }
        }
    }
    return dp[A.length][B.length];

    }
}

53. 最大子数组和

讲解的很好的一个
d p [ i ] dp[i] dp[i]表示包括下标i(以nums[i]为结尾)的最大连续子序列和为dp[i]。
d p [ i ] dp[i] dp[i]取决于 d p [ i − 1 ] dp[i-1] dp[i1]以及nums[i],所以,如果全为正数的化
(1)dp[i-1]<0,不能加,dp[i] =nums[i] (2)dp[i-1]>0,dp[i] =dp[i-1] + nums[i]

class Solution {
    public int maxSubArray(int[] nums) {
     int[] dp = new int[nums.length];
     dp[0] = nums[0];
     int res =dp[0];

     for(int i=1;i<nums.length;i++){
         dp[i] = nums[i] + (dp[i-1]<0?0:dp[i-1]);
         res = Math.max(dp[i],res);
     }
     return res;
    }
}

改进:因为 d p [ i ] dp[i] dp[i]只与 d p [ i − 1 dp[i-1 dp[i1有关

class Solution {
    public int maxSubArray(int[] nums) {
    
    int sum = nums[0];
     int res = nums[0];

     for(int i=1;i<nums.length;i++){
         sum = nums[i] + (sum<0?0:sum);
         res = Math.max(sum,res);
     }
     return res;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/811638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打开域名跳转其他网站,官网被黑解决方案(Linux)

某天打开网站&#xff0c;发现进入首页&#xff0c;马上挑战到其他赌博网站。 事不宜迟&#xff0c;不能让客户发现&#xff0c;得马上解决 我的网站跳转到这个域名了 例如网站跳转到 k77.cc 就在你们部署的代码的当前文件夹下面&#xff0c;执行下如下命令 find -type …

SQL-每日一题【1075. 项目员工 I】

题目 项目表 Project&#xff1a; 员工表 Employee&#xff1a; 请写一个 SQL 语句&#xff0c;查询每一个项目中员工的 平均 工作年限&#xff0c;精确到小数点后两位。 查询结果的格式如下&#xff1a; 解题思路 前置知识 AVG 函数 定义和用法&#xff1a; AVG 函数返回数…

基于ARM+FPGA (STM32+ Cyclone 4)的滚动轴承状态监测系统

状态监测系统能够在故障早期及时发现机械设备的异常状态&#xff0c;避免故障的 进一步恶化造成不必要的损失&#xff0c;滚动轴承是机械设备的易损部件&#xff0c;本文对以滚动 轴承为研究对象的状态监测系统展开研究。现有的监测技术多采用定时上传监 测数据&#xff0c;…

【Spring AOP + 自定义注解 + 数据源 实现主从库切换读写分离】—— 案例实战

&#x1f4a7; S p r i n g A O P 主从数据源切换 读写分离 自定义注解案例实战&#xff01; \color{#FF1493}{Spring AOP 主从数据源切换 读写分离 自定义注解 案例实战&#xff01;} SpringAOP主从数据源切换读写分离自定义注解案例实战&#xff01;&#x1f4a7; …

提升开发效率,Lombok的链式编程和构建模式

目录 链式编程 定义 代码示例 ​编辑 Accessors(chaintrue) 开启链式编程 ​编辑 Accessors(chain true,fluent true) 去除set和get 构建模式 定义 代码示例 ​编辑 踩坑 Singular 定义 代码示例 踩坑默认值情况 ​编辑 With 定义 代码示例 链式编程 定义 链…

SQL-每日一题【1070. 产品销售分析 III】

题目 销售表 Sales&#xff1a; 产品表 Product&#xff1a; 编写一个 SQL 查询&#xff0c;选出每个销售产品 第一年 销售的 产品 id、年份、数量 和 价格。 结果表中的条目可以按 任意顺序 排列。 查询结果格式如下例所示&#xff1a; 示例 1&#xff1a; 解题思路 前置知…

永恒之蓝复现(ms17-010)

目录标题 一、漏洞原理二、影响版本三、永恒之蓝复现复现环境复现过程1.主机发现 2.使用MSF的永恒之蓝漏洞模块3.使用ms17-010扫描模块&#xff0c;对win7进行扫描4.使用ms17-010攻击模块&#xff0c;对win7进行攻击5.得到win7权限6.通过shell对win7进行控制 一、漏洞原理 永恒…

第101章#远程调试西门子PLC(明牛智能网关)入门

一、下载明牛网站上的MNConfig&#xff08;用于配置MNGate系列产品&#xff09;。 二、注册账号。 三、用注册的账号登录MNConfig 四、在左侧BOX列表中,点击BOX列表—右键—添加BOX 五、选择联网方式&#xff0c;一般都是用的4G。 可以用自己的手机卡进行测试。 1、插入4G卡&am…

【Docker 那些事儿】如何安全地进入到容器内部

文章目录 &#x1f31f; 前言1. 容器运行&#x1f347; 自动重启的容器&#x1f347; 自定义名称的容器&#x1f347; 开启端口的容器&#x1f347; 与宿主机共享目录的容器 2. 进入容器2.1 容器的三种状态&#x1f351; 运行状态&#x1f351; 暂停状态&#x1f351; 终止状态…

操作系统4

文件管理 文件的逻辑结构 文件的目录 文件的物理结构 文件存储空间管理 文件的基本操作

stm32内存杂记

从上图中可以看出SRAM空间用来存放&#xff1a;1.各个文件中声明和定义的全局变量、静态数据和常量&#xff1b;2.未初始化的全局变量&#xff1b;3.HEAP区&#xff1b;4.STACK区 这是在.map文件中&#xff0c;双击工程target打开 堆栈是处于以0x2000xx地址处的 EQU伪代码&…

跟着《代码随想录》刷题(七)——回溯算法

7.1 组合问题 77、组合 LeetCode&#xff1a;77、组合 &#xff08;1&#xff09;未剪枝优化 class Solution { private:vector<vector<int>> result; // 存放符合条件结果的集合vector<int> path; // 用来存放符合条件结果void backtracking(int n, i…

SMB协议简单免费搭建个人winNAS

SMB协议&#xff0c;让PC变身小型winNAS&#xff0c;简单免费搭建个人winNAS 打开SMB服务设置共享文件夹远程连接 SMB 的优点之一是兼容性好&#xff0c;在各平台获得了广泛支持&#xff0c;包括 Windows、Linux、macOS 等各系统挂载访问都很方便。另外 SMB 也是各种电视、电视…

Arcgis通过模型构建器计算几何坐标

模型 模型中&#xff0c;先添加字段&#xff0c;再计算字段 计算字段 模型的计算字段中&#xff0c;表达式是类似这样写的&#xff0c;其中Xmin表示X坐标&#xff0c;Ymin表示Y坐标 !Shape.extent.Xmin!

免费商用 Meta 发布开源大语言模型 Llama 2

Meta 和微软深度合作&#xff0c;正式推出下一代开源大语言模型 Llama 2&#xff0c;并宣布免费提供给研究和商业使用。 Llama 2 论文地址&#xff1a;Llama 2: Open Foundation and Fine-Tuned Chat Models 据介绍&#xff0c;相比于 Llama 1&#xff0c;Llama 2 的训练数据多…

开源Blazor UI组件库精选:让你的Blazor项目焕然一新!

今天给大家推荐一些开源、美观的Blazor UI组件库&#xff0c;这些优秀的开源框架和项目不仅能够帮助开发者们提高开发效率&#xff0c;还能够为他们的项目带来更加丰富的用户体验。 注&#xff1a;排名不分先后&#xff0c;都是十分优秀的开源框架和项目 ​Ant Design Blazor…

Elastic Search 8.9:与 RRF 的混合搜索、更快的矢量搜索和面向公众的搜索端点

作者&#xff1a;Nick Chow, Dana Juratoni, Gilad Gal Elastic Search 8.9 引入了带有倒数排名融合 (RRF) 的混合搜索&#xff0c;以结合矢量、关键字和语义技术以获得更好的结果。 此版本还提高了矢量搜索和摄取的性能&#xff0c;响应时间加快了 30% 以上。 用户还可以通过新…

制作DBC文件

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ DBC文件是CAN通讯的密码本&#xff0c;Matlab的SimuLink中常用DBC作为CAN通讯的解析桥梁 制作DBC文件&#xff0c;内容是转速、位置&…

爆肝!《Java 权威面试指南(阿里版)》,冲击“金九银十”有望了

这次金九银十你准备好了吗&#xff1f; 莫慌莫慌&#xff0c;“面试造火箭&#xff0c;工作拧螺丝” 说得不无道理&#xff0c;偶然从朋友那得到的这份 Alibaba 内部疯传《Java 权威面试指南&#xff08;阿里版&#xff09;》堪称精品&#xff0c;或可能助你一臂之力&#xff…

源码安装lighttpd

lighttpd是一个德国人领导的开源web服务器软件&#xff0c;其根本的目的是提供一个专门针对高性能网站&#xff0c;安全、快速、兼容性好并且灵活的webserver环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。 1、准备环境&#xff1a; yum -y install…