自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 问答 (1)
  • 收藏
  • 关注

原创 在网络中添加特征金字塔,和自注意力机制

FPN和注意力机制的阐述。

2023-03-29 15:17:53 3599 1

原创 大三保研夏令营须知及前期准备工作

计算机相关专业夏令营保研前期准备工作。

2022-11-25 15:19:42 1309

原创 睡眠微事件检测——DOESED论文复现问题解决

睡眠微事件检测-计算机视觉+医学文章:《DOSED: A deep learning approach to detect multiple sleep micro-events inEEG signal》复现问题1解决。

2022-11-01 15:41:39 325

原创 构造螺旋矩阵

给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。思路(找规律):图片如下代码实现:class Solution { public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; int len = n; //当前元素 int now = 1; //当前的横坐

2022-04-05 16:57:24 422

原创 细说递归+回溯:通过构造可能结果的树来求解算法问题(Leetcode77.组合、Leetcode78.子集)

我们经常会遇到如下问题:给定一列数组或数,然后举例出所有可能的组合结果,这种问题我们直观的想法可能是:逐个遍历元素,求所有可能结果,这样当所给数量级较大时,可能会爆炸;此时我们通常的解法是将所有可能结果构造成一棵树,树中每一层都是一种可能的结果。(例如下图举例构造的树)这篇文章,我们使用Java来实现递归+回溯构造树,在构造树之前我们需要定义数据结构来存储所有可能的元素,我经常会采用的是双向队列Deque<>和列表List<List<>>,其中Deque通常用来存储当

2022-03-24 14:22:18 1129

原创 两种思路求解:Leetcode.997找到小镇的法官

题目概述:小镇里有 n 个人,按从 1 到 n 的顺序编号。传言称,这些人中有一个暗地里是小镇法官。如果小镇法官真的存在,那么:小镇法官不会信任任何人。每个人(除了小镇法官)都信任这位小镇法官。只有一个人同时满足属性 1 和属性 2 。给你一个数组 trust ,其中 trust[i] = [ai, bi] 表示编号为 ai 的人信任编号为 bi 的人。如果小镇法官存在并且可以确定他的身份,请返回该法官的编号;否则,返回 -1 。示例:输入:n = 2, trust = [[1,2]]输

2022-03-23 18:00:05 1750

原创 python.pyqt5设置文本框水平滚动条时无法显示的解决方法

问题描述:在进行pyqt5窗口的设置时,对由于项目中需要将识别内容显示到文本框当中且按照每个识别内容一行行显示,此时则需要对文本框设置垂直和水平滚动条,对于本文出现的问题:设置垂直滚动条时不会出现无法显示的情况,但是设置水平滚动条时虽然设置为ScrollBarAsNeeded或者ScrollBarAlwaysOn,但是当一行文本内容超过后仍然无法显示。问题原因:对于这个问题,其实是pyqt5中对于水平方向上的文本是软换行,即当你向文本框中append内容的时候,文本框自动会不按回车键就能自动换行。解

2022-03-22 09:03:52 2347

原创 java实现深度优先遍历——解决Leetcode.39组合总和问题

深度优先遍历对于深度优先遍历dfs,我们可以使用递归+回溯进行实现;预先定义一个栈或者队列都行,然后将每次满足的结果加入到集合当中,然后进行递归,再将集合尾部的元素删除进行回溯。组合总和问题使用深度优先遍历实现代码如下://定义方法用来实现深度优先遍历 public void dfs(int[] candidates,int start,int len,int target,Deque<Integer> que,List<List<Integer>> lis

2022-03-19 17:25:35 683

原创 Python.pyqt窗口点击按钮触发事件生成子窗口——解决子窗口闪现问题

子窗口闪现:当对某一窗口的按钮绑定事件后,点击该按钮,我的本意是想要通过点击按钮来创建一个子窗口并将其显示(但是出现了闪现)——我将创建子窗口和子窗口显示都放在一个触发事件当中。(导致闪现问题的代码如下)错误代码:# 弹出划分区域窗口(绑定方法) def showPic(self): //这是子窗口中用来创建窗口对象的 labelWin = MyWindow2() labelWin.show()但是让我疑惑的是,无论怎么点击按钮,虽然会触发绑定事件但是子

2022-03-18 18:10:07 2082

原创 Java递归实现归并排序——Leetcode75.颜色分类

归并排序本次使用递归实现归并排序,(我们采用倒序的思路),不妨先假设序列已经排序完毕,那么其之前一步就是将两部分(l->mid)以及(mid+1->r)进行排序然后合并…,那么依次按照这个思路我们就可以实现对应的递归方程式: //边界条件 if(l>=r){ return; } int mid = (l+r)>>1; //进行递归排序 merge_sort(nums,l

2022-03-17 15:49:39 973 1

原创 Acwing129.火车进栈(Java实现)——使用dfs+栈+队列

题目概述:这里有 n 列火车将要进站再出站,但是,每列火车只有 1 节,那就是车头。这 n 列火车按 1 到 n 的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从西方出去,而且每列火车必须进站,先进后出。也就是说这个火车站其实就相当于一个栈,每次可以让右侧头火车进栈,或者让栈顶火车出站。车站示意如图: 出站<—— <——进站 |车|

2022-03-17 12:38:59 866

原创 使用哈希表+优先队列解决字符频率问题

在求解算法题时,往往我们遇见的不是纯算法的题目,而是参杂着数据结构的题型;例如一般我们遇到需要统计字符出现的次数时,往往使用哈希表来记录数量,但是我们要找到最大的出现频率的元素,往往很难直接通过哈希表的来获取相应的value值,此时往往可以通过构造优先队列的方式来取值。接下来将列举几道有关使用哈希表+优先队列求解出现频率的类型题,望大家参考:题目1概述:前K个高频元素给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例:输入: nu

2022-03-15 16:03:23 503

原创 Acwing107.超快速排序——逆序对、归并排序

首先给出一个定理:在一个排列当中,如果一对数的前后位置与大小顺序相反(即前面的数大于后面的数)那么就称为一个逆序,一个排列当中逆序的总数称为这个排列的逆序数。一个排列的逆序数等于该排列转化为自然排序(从小到大)的最小次数。题目概述:在这个问题中,您必须分析特定的排序算法----超快速排序。该算法通过交换两个相邻的序列元素来处理 n 个不同整数的序列,直到序列按升序排序。对于输入序列 9 1 0 5 4,超快速排序生成输出 0 1 4 5 9。您的任务是确定超快速排序需要执行多少交换操作才能对给

2022-03-15 12:59:37 256

原创 LeetCode15.三数之和

题目概述:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]算法思路:题目要求不能有重复的三元组,那么我们需要对重复的元素进行去重;可以对元素及您修改比较如果当前元素和下一个元素相同,那么我们就可以直接跳到下一个元素,而跳过当前元素;这

2022-03-13 09:02:20 95

原创 Acwing101.最高的牛——使用java实现差分

题目概述:有 N 头牛站成一行,被编队为 1、2、3…N,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P 头,它的身高是 H ,剩余牛的身高未知。但是,我们还知道这群牛之中存在着 M 对关系,每对关系都指明了某两头牛 A 和 B 可以相互看见。求每头牛的身高的最大可能值是多少。输入格式:第一行输入整数 N,P,H,M,数据用空格隔开。接下来 M 行,每行输出两个整数 A 和 B ,代表牛 A 和牛 B 可以相互看见,数据

2022-03-12 10:04:25 1167

原创 Acwing54.数据流中的中位数——使用大根堆和小根堆

题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。数据范围数据流中读入的数据总数 [1,1000]。示例:输入:1, 2, 3, 4输出:1,1.5,2,2.5解释:每当数据流读入一个数据,就进行一次判断并输出当前的中位数。算法思路:本题,一开始我想到是时使用指针的方式,预先定义一个index指针指向第一个元素,当输入数据流的个数是奇数的时

2022-03-09 14:59:23 207

原创 递归遍历二叉树——Acwing70.二叉搜索树的第K个结点

题目描述:给定一棵二叉搜索树,请找出其中的第 k 小的结点。你可以假设树和 k 都存在,并且 1≤k≤ 树的总结点数。数据范围树中节点数量 [1,500]。算法思路:本题其实就是考查对于二叉树的遍历,有两种方法,一种利用栈进行非递归的遍历,另一种采用递归的方式;我才用的是递归方式进行遍历,递归遍历当前结点的左右子树,如果左右子树都为空那么就结束,否则遍历左右子树。同时在递归方法之外,定义一个全局变量用来存储二叉树的结点,对递归遍历完的二叉树中结点的元素进行排序,取出第k小的结点即可。算法实现

2022-03-08 16:31:34 202

原创 Acwing82.圆圈中最后剩下的数字

题目描述:0,1,…,n−1 这 n 个数字 (n>0) 排成一个圆圈,从数字 0 开始每次从这个圆圈里删除第 m 个数字。求出这个圆圈里剩下的最后一个数字。示例:输入:n=5 , m=3输出:3算法思路:本题中要想在圆圈里删除数字,那么就需要先将这几个数字围起来,那么就考虑到可以使用循环链表,这里我采用定义一个Node结点,其val存储的是数字本身的值,next指针域存放的是下一个带有数字值的Node结点,然后定义一个start指针,来进行遍历,每次start停在要删除的结点上一个,

2022-03-07 13:28:10 215

原创 Acwing76.和为S的连续整数序列——java集合使用clear()清空集合的注意点

题目描述:输入一个非负整数 S,打印出所有和为 S 的连续正数序列(至少含有两个数)。例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以结果打印出 3 个连续序列 1∼5、4∼6 和 7∼8。示例:输入:15输出:[[1,2,3,4,5],[4,5,6],[7,8]]算法思路:本题,直接使用双指针即可解决,定义两个指针slow和fast,slow从第一个元素开始,然后fast初始位置比slow+1,依次遍历fast累加看是否达到sum值,然后将每次的值存入到list当

2022-03-06 15:32:23 294

原创 Acwing43-44:不分行从上往下打印二叉树、分行从上往下打印二叉树

Acwing43.不分行从上往下打印二叉树题目描述:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。示例:输入如下图所示二叉树[8, 12, 2, null, null, 6, null, 4, null, null, null] 8 / \ 12 2 / 6 / 4输出:[8, 12, 2, 6, 4]算法思路:本题其实使用BFS就可以轻松的解决,定义一个队列,然后先将该二叉树的根结点入队,然后依次队列当中的结点出队,判

2022-03-06 09:40:52 276

原创 NC12.重建二叉树

题目描述:给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。示例:输入:[1,2,4,7,3,5,6,8],[4,7,2,1,5,3,8,6]返回值:{1,2,3,4,#,5,6,#,7,#,#,8}说明:返回根节点,系统会输出整颗二叉树对比结果,重建结果如题面图示 算法思路:对于给定一棵二叉树的前序遍历和中序遍历,对于前

2022-03-04 13:19:06 183

原创 使用dfs求解:NC9二叉树中和为某一值的路径

题目描述:描述给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n算法思路:本题使用dfs进行求解,同时采用递归,对于dfs如果遍历到的节点为空则返回false,如果遍历到叶子节点并且从根节点到叶子节点的路径之和刚好等于sum,那么返回true,否则向左右子树进行遍历。算法实现

2022-03-03 21:25:10 155

原创 利用栈解决:NC5.二叉树根节点到叶子节点的所有路径和

题目概述:给定一个二叉树的根节点root,该树的节点值都在数字\ 0-9 0−9 之间,每一条从根节点到叶子节点的路径都可以用一个数字表示。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n例如根节点到叶子节点的一条路径是1→2→3,那么这条路径就用123 来代替。找出根节点到叶子节点的所有路径表示的数字之和算法思路:本题考虑到要从根节点到叶子节点的遍历,那么就需要从根节点逐层

2022-03-03 21:00:33 476

原创 使用异或求解:136.只出现一次的数字

题目概述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例:输入: [2,2,1]输出: 1算法思路:本题,对于重复元素的题目,可以直接使用Hash来做,但是题目要求不能使用额外空间,那么(除了return的值以外)就不能新建新的空间了。这里可以采用异或,对于异或来讲**0异或任意数值仍为该数;两个相同的数异或值为0;**那么我们就能通过异或找到唯一出现一次的数字。

2022-03-01 18:42:22 122

原创 5.最长回文子串

题目概述:给你一个字符串 s,找到 s 中最长的回文子串。示例:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。算法思路:对于单个字符串,其本身就是一个回文,对于长度大于1的字符串,首先需要看该字符的索引处为0和length-1的字符是否相等,如果相等然后再判断去掉首尾字符的字符串是否为回文,从而确定;那么我们通过定义一个二维数组dp,用来存储从索引i到j的字符串是否为回文,然后对长度从1开始直到length进行遍历,找出最长的回文子串。算法实现:cl

2022-03-01 16:53:40 96

原创 2149.按序号重排数组、2150.找出数组中的所有孤独数字

2149.题目概述:给你一个下标从 0 开始的整数数组 nums ,数组长度为 偶数 ,由数目相等的正整数和负整数组成。你需要 重排 nums 中的元素,使修改后的数组满足下述条件:任意 连续 的两个整数 符号相反对于符号相同的所有整数,保留 它们在 nums 中的 顺序 。重排后数组以正整数开头。重排元素满足上述条件后,返回修改后的数组。示例:输入:nums = [3,1,-2,-5,2,-4]输出:[3,-2,1,-5,2,-4]解释:nums 中的正整数是 [3,1,2] ,负整

2022-02-28 18:33:34 257

原创 1877.数组中最大数对和的最小值

题目概述:一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对和 。比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(1+5, 2+3, 4+4) = max(6, 5, 8) = 8 。给你一个长度为 偶数 n 的数组 nums ,请你将 nums 中的元素分成 n / 2 个数对,使得:nums 中每个元素 恰好 在 一个 数对中,且最大数对和 的值 最小 。请你在最优数对划分的方案下,返回最小的 最大数对和 。

2022-02-22 17:15:43 232

原创 NC41最长无重复子数组

题目概述:给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组时间限制:1秒 空间限制:256M算法思路:本题算法考察的是哈希、双指针、数组;题目要求最长无重复子数组,那么就可用HashMap来存储子数组当中的元素,每次遍历到一个元素后就判断该元素是否出现在Hash当中,如果没有就将该元素存入到当前HashMap当中;为了对原arr数组进

2022-02-17 14:29:55 529

原创 最大子数组和

题目概述:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。ps:这里需要注意两类特殊的数组:(1)数组长度为1,该结果及返回数组中的单个元素即可。(2)数组当中的元素全是负数,那么此时只需找出数组中负数元素最大那个即可。算法思路:本题我们可以考虑,要想求连

2022-02-16 13:15:39 324

原创 利用动态规划求解——给定矩阵求路径之和最大最小类问题

题1:下降路径最小和给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 (row, col) 的下一个元素应当是 (row + 1, col - 1)、(row + 1, col) 或者 (row + 1, col + 1) 。算法思路:对于这类问题,给定

2022-02-08 16:19:10 1275

原创 Pytorch利用RNNCell实现字符串转变——并利用Embedding层进行修改

在RNN(循环神经网络)当中主要的是有RNN Cell构成的,RNN Cell是同一个Linear层,是各个阶段共享的;RNN Cell主要将输入的Xt和ht-1经过线性变化后,然后再融合,并通过激活函数得到ht,从而将ht作为下一个RNN Cell的输入,然后一直到最后输出hidden结果。使用RNN Cell训练ohlol——>hello的模型:(1)首先应该注意,RNN Cell的输入必须是由数字构成的向量ps:一般在做自然语言处理的时候,比如遇到字符级别的数据,需要先根据所得的字符,构

2022-02-02 16:44:13 1539

原创 Pytorch构建卷积神经网络对MNIST数据集进行分类

对于一张输入的图片,该图片是栅格图像,也就是说图片分成一格一格,每一格代表一个像素,对于patch(图片块),我们按照块的大小,从上到下、从左到右对图片进行遍历,然后对每个图像块进行卷积运算。如何卷积:(1)对于单通道的进行卷积时,首先按照卷积核的规模比如说3x3,那么现在输入图像中画出3x3的窗口,然后该窗口和这个卷积核进行数乘运算,即对应位置元素相乘再相加,然后移动窗口不断遍历,最终得到输出,该输出的规格为:(输入规格-(卷积核规格-1))(2)对于多通道图片进行卷积时,每一个通道都要对应1个卷积

2022-01-28 15:09:59 4326

原创 Pytorch实现MNIST图像数据集进行多分类问题

使用Pytorch读取图像时,这与用PIL或者OpenCV读取图像有所区别;在使用PIL和OpenCV读取图像数据时,该图像常常是WHC的形式(宽度高度通道),但是在Pytorch读取图像的时候,需要先转换成图像张量,转成CWH的形式(通道宽度高度);同时先将图像标准化成0-1分布,这样当传入神经网络时效果会比较好。多分类问题:在多分类问题中,不像二分类问题那样只有0,1;该分类有多个输出,为此可以用Softmax函数保证每个类别的概率都>=0,且所有类别之和等于1;为此在Pytorch当中采用

2022-01-27 15:44:34 4612

原创 NC1——连续子数组最大和(动态规划实现)

题目概述:给定一个长度为 n 的数组,数组中的数为整数。请你选择一个非空连续子数组,使该子数组所有数之和尽可能大。求这个最大值。输入描述:第一行为一个正整数 n,代表数组的长度。 1<= n <=2*10^5第二行为 n 个整数 ai,用空格隔开,代表数组中的每一个数。输出描述:连续子数组的最大之和。示例1:输入:33 -4 5输出:5说明:选择 [5] 这个子数组即可。算法思路:对于该题,想要得到连续子数组的最大和,那么对于当前的元素就要直到该元素之前元素的

2022-01-26 19:05:15 1078

原创 Pytorch实现线性回归模型

利用Pytorch实现线性回归模型主要步骤为:(1)定义数据集,这里需要注意在Pytorch中使用的是mini-batch那么因此数据集是矩阵形式(2)自定义模型类,在定义模型类的时候需要继承自torch.nn.Module类,同时需要提供构造方法和重写forward函数。(3)构造Loss并且创建优化器,在Pytorch中可以使用多种优化器,具体如下:torch.optim.Adagrad、torch.optim.Adam、torch.optim.Adamax、torch.optim.ASGD、t

2022-01-25 14:31:11 4318

原创 Pytroch手动实现简单线性反向传播

使用Pytorch实现反向传播时需要注意以下几点:(1)在定义权重的时候,是通过定义tensor来定义的,那么需要在列表中创建值,例如torch.Tensor([所需权重])。(2)tensor(张量)中存储了两个变量分别为data和grad,其中data用来存放权重;grad其本质上也是一个tensor,用来存储损失对权重的偏导数。(3)定义的tensor当中在Pytorch中默认定义的自动计算梯度为False,此时我们需要将他设置为True。(4)在通过前馈函数计算损失的时候,返回的值也是一个t

2022-01-25 12:44:54 854

原创 PAT甲级(Advanced Level)练习题 ——A+B Format (20)的Java实现

题目描述:Calculate a + b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).输入描述:Each input file contains one test case. Each case contains a pair of integer

2022-01-24 13:14:47 162

原创 手动实现梯度下降和随机梯度下降

梯度下降适合用于并行化,他是对于整个样本的数据进行求Loss和Gradient的,相比于梯度下降而言,随机梯度下降针对的是某个样本,他不需要所有求和,只需对其中某个样本求梯度即可;但是这两个也有优缺点,比如随机梯度下降虽然性能好,但是对每个样本求梯度再更新权重,这样会使得时间复杂度较大;对于梯度下降其时间复杂度低,但是性能不行,为此在这两者之间取折中在深度学习当中,往往使用Batch,将样本若干分为一组,对每一组求梯度,用小批量的数据进行批量的随机梯度下降。梯度下降代码实现:# -*- coding:

2022-01-21 14:58:40 1134

原创 机器学习——手动实现线性模型

对于一般数据集,我们往往可以从最简单的模型入手进行尝试,假如简单的模型得出的结果与实际不符那么再更改模型,增加模型中的参数或者调整幂次等方式。接下来从最简单的线性模型入手,介绍如何用python进行实现。操作步骤:(1)首先我们要进行数据集的读入,这里一般数据集都是以csv格式保存,我们可以通过pandas进行读入,并将特征值和目标值分开存储。(2)定义前馈函数,也就是用来计算预测值(3)定义损失函数,将预测值和真实值进行相应的计算(4)对于权重w循环取值,然后将之前存入的特征值和标签取出进行计

2022-01-21 12:28:51 744

原创 最长递增子序列——动态规划Java实现

题目描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。ps:这里要注意最长子序列和最长子串的区别,子序列各元素是可以不要求连续的,但是子串中各元素要求连续。算法思路:题目要求最长递增子序列,即找数组当中每个元素之前的元素呈递增的有多少个,那么我们可以先定义一个数组res用来存储当前元素即其之前元素的递增子序列长度,如果该

2022-01-19 16:34:47 690

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除