代码随想录第五十三天
代码随想录第五十三天
- Leetcode 1143. 最长公共子序列
- Leetcode 1035. 不相交的线
- Leetcode 53. 最大子数组和
Leetcode 1143. 最长公共子序列
题目链接: 最长公共子序列
自己的思路:没想出来!!!
正确思路:首先这道题由于是涉及到了两个数组(或字符串),所以我们要使用二维dp数组来表示;动规五部曲:1、dp数组的含义:dp[i][j]表示以text1[i-1]和text2[j-1]结尾的最长公共子序列的长度(这里为什么是i-1和j-1前面一些题解已经解释了);2、递推公式:dp[i][j]是和三个数组有关系的,分别是dp[i-1][j-1]、dp[i][j-1]和dp[i-1][j],这里就要分情况了,因为我们要判断当前的元素要不要归到最长公共子序列里面去,所以要判断text1[i-1]和text2[j-1]是否相等,如果相等的话,就要在dp[i-1][j-1]基础上加1,如果不相等的话,就要对另外两个求最大值,因为我们的dp[i][j]其实是可以和dp[i][j-1]有关的,我们可以忽略掉text[i-1]这个元素,因为现在text1[i-1]和text2[j-1]并不相等,另一个也是如此!!!3、dp数组的初始化:这里还是和之前那道题一样,全部初始化为0,解释看之前的题;4、遍历顺序:由于dp[i][j]是由前面的数来决定的,所以我们是从前向后遍历;5、打印dp数组:主要用于debug!!!!!
代码:
class Solution {public int longestCommonSubsequence(String text1, String text2) {//转数组,方便操作char[] c1 = text1.toCharArray();char[] c2 = text2.toCharArray();int m = text1.length();int n = text2.length();int[][] dp = new int[m+1][n+1];for (int i = 1;i<=m;i++){for (int j = 1;j<=n;j++){//递推公式if (c1[i-1]==c2[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[m][n];}
}
Leetcode 1035. 不相交的线
题目链接: 不相交的线
自己的思路:和上一个题一模一样!!!!!
正确思路:
代码:
class Solution {public int maxUncrossedLines(int[] nums1, int[] nums2) {int m = nums1.length;int n = nums2.length;int[][] dp = new int[m+1][n+1];for (int i=1;i<=m;i++){for (int j = 1;j<=n;j++){//递推公式if (nums1[i-1]==nums2[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[m][n];}
}
Leetcode 53. 最大子数组和
题目链接: 最大子数组和
自己的思路:贪心!!!!我们只在sum大于0的时候给他继续向后加,因为如果小于等于0的话再向后加是没有意义的,只会削弱后的数!!!!
代码:
class Solution {public int maxSubArray(int[] nums) {int sum = 0;int maxvalue = Integer.MIN_VALUE;for (int i=0;i<nums.length;i++){//如果sum大于0才有意义if (sum<=0){sum = nums[i];}else{sum += nums[i];}//更新最大值maxvalue = Math.max(sum,maxvalue);}return maxvalue;}
}
其他思路:动态规划!!!!!!直接动规五部曲:1、dp数组的含义:以nums[i]结尾的最大子序列的和;2、递推公式:主要分析dp[i]和哪些元素有关系,他可能在dp[i-1]的基础上加上当前元素,也可能直接放弃掉之前的累加和,直接令dp[i]=nums[i],所以要在两者中取较大者;3、dp数组初始化:这里其实只将dp[0]初始化为nums[0]即可,但是因为后面dp[i]的递推公式有一个和nums[i]比较的,我们改成对dp[i]进行比较,所以最开始初始化的时候直接令dp=nums即可!!!!4、遍历顺序:由于后面的状态依赖前面的状态,所以我们采用从前向后遍历的方式;5、打印dp数组:主要用于debug!!!!
代码:
class Solution {public int maxSubArray(int[] nums) {int[] dp = nums;int maxval = nums[0];for (int i =1;i<nums.length;i++){//递推公式dp[i] = Math.max(dp[i-1]+nums[i],dp[i]);maxval = Math.max(maxval,dp[i]);}return maxval;}
}
相关文章:
代码随想录第五十三天
代码随想录第五十三天 Leetcode 1143. 最长公共子序列Leetcode 1035. 不相交的线Leetcode 53. 最大子数组和 Leetcode 1143. 最长公共子序列 题目链接: 最长公共子序列 自己的思路:没想出来!!! 正确思路:首先这道题由于是涉及到了两个数组&…...
cmd - 如何在不重启的情况下让修改后的hosts生效
cmd - 如何在不重启的情况下让修改后的hosts生效 亲测有效 一般在修改了hosts文件后,需要重启电脑才能生效;其实可以不通过重启电脑也可以令其生效,方法如下: 打开cmd窗口输入ipconfig /flushdns,然后回车。…...
echarts实现双x轴并且分组滚动效果
var myChart echarts.init(document.getElementById(allOutPut1));var option {legend: {itemHeight: 10, // 图例icon高度itemWidth: 16, // 图例icon宽度icon:rect,//设置为矩形top:2%,right:10%,},tooltip: {trigger: axis,axisPointer: {type: shadow},textStyle: {fontS…...
UE4 地形编辑基础知识 学习笔记
之前自己写过这样的功能,今天看到一个UE现成的 点击地形,选择样条 按住CTRL键点击屏幕中某一个点会在场景内生成一个这样的图标 再点两次,会生成B样条的绿线条 点击号再选择一个模型,会生成对应的链条状的mesh 拉高最远处的一个图…...
AcWing算法提高课-5.5.2最大公约数
宣传一下 算法提高课整理 CSDN个人主页:更好的阅读体验 原题链接 题目描述 给定整数 N N N,求 1 ≤ x , y ≤ N 1 \le x,y \le N 1≤x,y≤N 且 gcd ( x , y ) \gcd(x,y) gcd(x,y) 为素数的数对 ( x , y ) (x,y) (x,y) 有多少对。 输入格式 输…...
Kubernetes-CKA考题详解
Kubernetes-CKA考题详解 考前须知:考试环境说明第一题:RBAC(4%)第二题:指定node设置为不可用(4%)第三题:升级kubernetes节点(7%)第四题:etcd备份还原(7%)第五题:创建NetworkPolicy(7%)第六题:创建svc(7%)第七题:创建ingress资源(7%)第八题:扩展deployme…...
不同版本.net引用同一个项目
项目文件.csproj文件内容如下: 重点是:不能有其他的 netstandard2;net40;net45;net46;net6 <Project Sdk"Microsoft.NET.Sdk"><PropertyGroup><TargetFrameworks>netstandard2;net40;net45;net46;net6</TargetFrame…...
软件开发企业SDL安全培训案例
1.背景 随着计算机技术的发展、internet及mobile应用的普遍使用,软件安全像功能、性能、稳定性一样是计算机系统的一个非常重要部分。没有安全的软件,任何美好的功能都是徒劳的,没有安全的软件,公司的机密数据、客户隐私、系统的可靠性都得不到保障.如何有效评估、开发安全、可…...
ide-eval-resetter jar包下载、源码、使用介绍
如果你在找ide-eval-resetter插件,这里告诉你,2021.3版本开始该插件正式失效。 如果你安装的JB产品版本低于2021.3版本,你确定要找ide-eval-resetter,下面提供相关链接希望对你有帮助。 ide-eval-resetter源码: Githu…...
数据压缩算法一览
文章首发地址 Huffman编码: Huffman编码是一种基于字符频率的无损压缩算法。它将出现频率较高的字符用较短的编码表示,出现频率较低的字符用较长的编码表示,从而实现压缩。Lempel-Ziv-Welch (LZW): LZW是一种基于字典的无损压缩算…...
使用Rust开发命令行工具
生成二进制文件,将其扔到环境变量的path下即可~ 用rust打造实时天气命令行工具[1] 找到合适的API 使用该api[2] 如请求 api.openweathermap.org/data/2.5/weather?qBeijing&appidyour_key: { "coord": { "lon": 116.3972, "lat&quo…...
CentOS中Oracle11g进程有哪些
最近遇到Oracle数据库运行过程实例进程由于某种原因导致中止的问题,专门看了下正常Oracle数据库启动后的进程有哪些,查阅资料了解了下各进程的作用,记录如下。 oracle 3032 1 0 07:36 ? 00:00:00 ora_pmon_orcl oracle …...
WebRTC之FEC前向纠错协议
FEC前向纠错用于丢包恢复,对媒体包进行异或或其他算法生成冗余包进行发送。如果接收端出现丢包,可以通过冗余包恢复出原始的媒体包。FEC的代价是增加码率带宽,所以一般会根据网络状况、丢包率来动态调整FEC冗余系数,也会结合NACK/…...
软件测试技术分享丨使用Postman搞定各种接口token实战
现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…...
GBU812-ASEMI逆变器专用整流桥GBU812
编辑:ll GBU812-ASEMI逆变器专用整流桥GBU812 型号:GBU812 品牌:ASEMI 芯片个数:4 封装:GBU-4 恢复时间:>50ns 工作温度:-55C~150C 浪涌电流:200A 正向电流&…...
D2007在64位Win7出现 delphi 2007 assertion failure thread32.cpp 的解决办法
Delphi2007 原来安装在Win7 下 运行正常, 自从升级到Win10 ,新建工程运行然后关闭报错, 报错信息如下: --------------------------- bds.exe - bordbk105N.dll --------------------------- Assertion failure: "(!"S…...
windows10 docker 安装在D盘
win10安装docker后发现c盘空间急速减少,360管家查看发现images镜像安装在C盘,于是重装docker desktop以为在安装过程中能够选择,遗憾的是没有提供选择权限,默认直接就安装到了c盘。 desktop 迁移 百度得知可以将c盘的docker安装…...
Scikit-learn强化学习代码批注及相关练习
一、游戏介绍 木棒每保持平衡1个时间步,就得到1分。每一场游戏的最高得分为200分每一场游戏的结束条件为木棒倾斜角度大于41.8或者已经达到200分。最终获胜条件为最近100场游戏的平均得分高于195。代码中env.step(),的返回值就分…...
执行jmeter端口不够用报错(Address not available)
执行jmeter端口不够用报错(Address not available) linux解决方案 // 增加本地端口范围 echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range// 启用快速回收TIME_WAIT套接字 sudo sysctl -w net.ipv4.tcp_tw_recycle 1// 启用套接字的重用 sudo sysctl -w net.ipv4.…...
【Go Web 篇】从零开始:构建最简单的 Go 语言 Web 服务器
随着互联网的迅速发展,Web 服务器成为了连接世界的关键组件之一。而在现代编程语言中,Go 语言因其卓越的性能和并发能力而备受青睐。本篇博客将带你从零开始,一步步构建最简单的 Go 语言 Web 服务器,让你对 Go 语言的 Web 开发能力…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
