代码随想录Day56

300.最长递增子序列

题目:300. 最长递增子序列 - 力扣(LeetCode)

思路:找到所有的递增区间,再合并起来,想不到用递推公式可以怎么推,难搞

答案
class Solution {public int lengthOfLIS(int[] nums) {int[] dp = new int[nums.length];int res = 1;Arrays.fill(dp, 1);for (int i = 1; i < dp.length; i++) {for (int j = 0; j < i; j++) {if (nums[i] > nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1);}res = Math.max(res, dp[i]);}}return res;}
}
小结

dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度

关键就是dp[i]的定义,最后返回的是dp[i]里面最大的

674.最长连续递增序列

题目:674. 最长连续递增序列 - 力扣(LeetCode)

思路:仿照最长递增子序列,只能对比前后的元素,

尝试(难得AC,哇靠)
class Solution {public int findLengthOfLCIS(int[] nums) {int[] dp = new int[nums.length];int res = 1;for (int i = 0; i < dp.length; i++) {dp[i] = 1;}for (int i = 1; i < dp.length; i++) {if (nums[i] > nums[i-1]) {dp[i]=dp[i-1]+1;}res =  res > dp[i] ? res : dp[i];}return res;}
}
答案
 /*** 1.dp[i] 代表当前下标最大连续值* 2.递推公式 if(nums[i+1]>nums[i]) dp[i+1] = dp[i]+1* 3.初始化 都为1* 4.遍历方向,从其那往后* 5.结果推导 。。。。* @param nums* @return*/public static int findLengthOfLCIS(int[] nums) {int[] dp = new int[nums.length];for (int i = 0; i < dp.length; i++) {dp[i] = 1;}int res = 1;//可以注意到,這邊的 i 是從 0 開始,所以會出現和卡哥的C++ code有差異的地方,在一些地方會看到有 i + 1 的偏移。for (int i = 0; i < nums.length - 1; i++) {if (nums[i + 1] > nums[i]) {dp[i + 1] = dp[i] + 1;}res = res > dp[i + 1] ? res : dp[i + 1];}return res;}
小结

dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]

如果 nums[i] > nums[i - 1],那么以 i 为结尾的连续递增的子序列长度 一定等于 以i - 1为结尾的连续递增的子序列长度 + 1 。即:dp[i] = dp[i - 1] + 1;

718.最长重复子数组

题目:718. 最长重复子数组 - 力扣(LeetCode)

思路:

dp[i][j]:以下标i为结尾的nums1[i] 和 以下标j为结尾的nums2[j] 构成的重复子数组的最大长度

尝试(部分AC,有点东西了)
class Solution {public int findLength(int[] nums1, int[] nums2) {int[][] dp = new int[nums1.length][nums2.length];int res = 0;for(int i =0; i<nums1.length; i++){for(int j =0; j<nums2.length; j++){// if(nums1[i]==nums2[j]){//     dp[i][j] = 1;// }dp[i][j] = 1;}}for(int i =1; i<nums1.length; i++){for(int j =1; j<nums2.length; j++){if(nums1[i]==nums2[j]){dp[i][j] = dp[i-1][j-1]+1;}res = Math.max(res,dp[i][j]);}}return res;}
}
答案
class Solution {public int findLength(int[] nums1, int[] nums2) {int result = 0;int[][] dp = new int[nums1.length + 1][nums2.length + 1];for (int i = 1; i < nums1.length + 1; i++) {for (int j = 1; j < nums2.length + 1; j++) {if (nums1[i - 1] == nums2[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;result = Math.max(result, dp[i][j]);}}}return result;}
}
小结

dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。 (特别注意: “以下标i - 1为结尾的A” 标明一定是 以A[i-1]为结尾的字符串 )

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

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

相关文章

Oracle正确的拼接字符串到clob的方法

在Oracle中&#xff0c;拼接字符串到CLOB&#xff08;Character Large Object&#xff09;字段的正确方法取决于数据的大小和具体的场景。以下是一些常用的方法&#xff0c;我会尽量清晰地分点表示和归纳&#xff1a; 使用PL/SQL的DBMS_LOB包 当直接对CLOB使用||操作符可能会…

C++基于easyX的员工管理界面

代码&#xff1a; #include "workerManager.h" #include "manager.h" #include "worker.h" #include "technician.h" #include <iostream> #include <graphics.h> #include <windows.h> #include <conio.h>…

Docker:Docker基础

Docker Docker简介 在大型项目部署时,会出现依赖关系复杂容易出现兼容性等问题 同时开发,测试和生产的环境也存在差异 Docker解决依赖兼容问题 将应用的Libs函数库,Deps依赖,配置和应用一起打包 将每个应用放到一个隔离容器中去运行,避免互相干扰 Docker解决操作系统环境…

SpringCloud入门教程

一、SpringCloud介绍 1.概念 Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用 spring boot 的开发风格做到…

使用 Bing 的 Chat 初体验

前言 下载好 Edge 浏览器&#xff0c;并且通过 ModHeader 插件的设置才能访问外边的功能完善的 edge &#xff0c;但是想要进行 chat 需要通过申请才行&#xff0c;网上很多教程我就不赘述了。 正文 我的申请刚刚通过&#xff0c;但是使用 Chat 的效果一般&#xff0c;感觉很…

如何用css实现两列布局?

1. 两列布局的基本方法 实现两列布局有多种方法&#xff0c;这里我会介绍几种常见的技术&#xff0c;包括浮动、Flexbox和Grid布局。 方法一&#xff1a;使用浮动&#xff08;Float&#xff09; 浮动是一种早期的布局方式&#xff0c;虽然现在不推荐&#xff0c;但仍然有必要…

对抗攻击论文阅读—AAAI2022—CMUA-Watermark

文章目录 CMUA-Watermark: A Cross-Model Universal Adversarial Watermark for Combating Deepfakes背景1、什么是对抗攻击1.1 主动防御与被动防御 2、整体思路3、方法3.1 整体流程3.2 如何破坏单个面部修改模型 G G G论文中代码 3.3 对抗扰动融合3.4 基于TPE的自动步长调整 4…

R语言中dplyr包的多表连接

在数据分析中&#xff0c;处理多个数据表是常见的需求。R语言中&#xff0c;dplyr包提供了丰富的连接&#xff08;join&#xff09;函数来实现多表连接操作。本文将解释R语言中的各种连接类型&#xff0c;包括内连接、外连接、左连接、右连接、半连接和反连接&#xff0c;并给出…

鸿蒙开发接口数据管理:【@ohos.data.distributedDataObject (分布式数据对象)】

分布式数据对象 本模块提供管理基本数据对象的相关能力&#xff0c;包括创建、查询、删除、修改、订阅等&#xff1b;同时支持相同应用多设备间的分布式数据对象协同能力。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标…

股票数据集3- 纳斯达克NASDAQ 100 指数预测

通过4天股票数据预测后1天的数据 1. 特征选择 从上一节的PCA特征分析中&#xff0c;我们大概选择40-60只股票就可涵盖该数据集的主要信息。 因此&#xff0c;我们选择前32 or 64只股票作为模型输入, NASDAQ指数作为预测输出。 也可以根据上一节内容&#xff0c;分析特征重要性…

CISSP—实现安全治理和原则的策略

0x00 前言 首先拿到这个标题会想到什么内容呢&#xff0c; 实现安全治理和原则的策略&#xff0c;简要的拆分成问题就是 什么是安全治理什么是安全原则他们的策略是什么如何实现 其实这个就是当我们看到这个标题的时候应该想到的事情。若果这一章节学完&#xff0c;没有理解…

台灯学生用哪个牌子最好?学生台灯十大名牌排行榜分享

近年来&#xff0c;我们注意到儿童近视的现象呈现出增多且趋于低龄化的趋势。这一变化&#xff0c;部分原因可以归咎于孩子们越来越多地使用电子产品&#xff0c;另一部分则与他们面临的学业压力增加有关。鉴于此&#xff0c;家长们在挑选儿童学习用品时变得格外谨慎&#xff0…

Qt系统相关

本文目录 1.Qt事件事件的处理标签事件鼠标事件滚轮事件按键事件定时器事件窗口事件事件派发器 2.Qt文件操作QFile的基本使用 3.Qt多线程使用线程线程锁connect的第五个参数 条件变量和信号量 4.Qt网络编程UDP SocketTCP SocketQTcpServerQTcpSocket HTTP的编写 5.QT多媒体播放音…

【CTF MISC】XCTF GFSJ0766 something_in_image Writeup(字符串搜索)

something_in_image 暂无 解法 用 binwalk 扫描。 binwalk badimages 找到一个 ext3 文件系统。 strings badimages | grep {*}找到 flag。 Flag Flag{yc4pl0fvjs2k1t7T}声明 本博客上发布的所有关于网络攻防技术的文章&#xff0c;仅用于教育和研究目的。所有涉及到的实验…

Redis面试题、知识点总结,一篇文章让Redis成为面试加分项

Redis面试题、知识点总结&#xff0c;一篇文章让Redis成为面试加分项 前言 参与了几次中大厂的面试&#xff0c;你会发现一面时对于八股文的考察也具有侧重点&#xff08;MySQLRedis > 网络 > 系统 >设计模式 > java集合> JVM >spring) 本文的目标就是通过…

收音机的原理笔记

1. 收音机原理 有线广播&#xff1a;我们听到的声音是通过空气振动进行传播&#xff0c;因此可以通过麦克风&#xff08;话筒&#xff09;将这种机械振动转换为电信号&#xff0c;传到远处&#xff0c;再重新通过扬声器&#xff08;喇叭&#xff09;转换为机械振动&#xff0c…

软件设计师笔记-程序语言基础知识

编程语言之间的翻译形式 编程语言之间的翻译形式主要有三种:汇编、解释和编译。这三种方式在将源代码转换为机器可执行的代码时,有着各自的特点和流程。 汇编: 定义:汇编是低级语言(如汇编语言)到机器语言的一种翻译方式。汇编语言是为特定计算机或计算机系列设计的一种…

PostgreSQL的视图pg_database

PostgreSQL的视图pg_database pg_database 是 PostgreSQL 中的一个系统视图&#xff0c;用于显示当前数据库集群中的所有数据库的信息。通过查询 pg_database 视图&#xff0c;数据库管理员可以获取关于每个数据库的详细信息&#xff0c;例如数据库的名称、所有者、编码、表空…

打造精细化运维新玩法(四)

二、SLO健康度——从0到1构建SLO 和大多互联网企业一样&#xff0c;蚂蚁的基础设施侧存在众多的异构系统&#xff0c;被上层的业务应用和服务所依赖。考虑到不同系统的技术栈、架构、部署等因素&#xff0c;我们需要找到一种通用的、泛化性强的数字化方案指导和构建基础设施域内…

智能楼宇可视化:赋能智慧园区管理

图扑智慧园区楼宇可视化系统&#xff0c;集成多种数据源&#xff0c;实现全方位监控与管理&#xff0c;提升园区的资源利用率和用户满意度&#xff0c;推动智能化管理进程。