自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 收藏
  • 关注

原创 LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二1. 题目2. 解题思路一参考 剑指 Offer——数组中的逆序对,我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。如上图最左边所示,第五行开始进行第一次合并过程。因为 11>811>811>8,所以,111111 右边小于它的元素个数加 111,也就是上图最右侧第二行的数组(我们记为 countscountscounts 数组)第 000 个元素变为 111。同理,数字 7

2024-04-20 15:55:36 823

原创 LeetCode 199——二叉树的右视图

所以,我们对树进行层次遍历,保存每一层的节点值,取最后一个值即可。从顶部到底部,从右侧能看到的节点值,也就是。

2024-04-17 21:40:43 209

原创 LeetCode 409—— 最长回文串

然后如果某个字符出现了偶数次,那么回文串长度就增加这个字符出现的次数;如果某个字符出现了奇数次,那么回文串长度也只能增加小于这个奇数次的最大偶数。要想组成回文串,那么只有最中间的字符可以是奇数个,其余字符都必须是偶数个。最后,如果存在奇数个的字符,那么中间可以放一个期数字符,回文串长度加 1。所以,我们先遍历一遍字符串,统计出每个字符出现的次数。

2024-04-16 22:21:22 264

原创 LeetCode 113—— 路径总和 II

那么只需要将根节点的值插入到这个路径列表中作为第一个元素即可。同理,右子树也是一样。看到树的问题一般我们先考虑一下是否能用递归来做。如果到达了叶子结点,而且叶子结点的值等于。,如果根节点的左子树有一个路径总和等于。如果树是空的,那么直接返回一个空的列表。,那么就返回一个包含叶子结点值的列表。

2024-04-15 21:26:08 464 1

原创 LeetCode 57—— 插入区间

然后,我们遍历结果区间列表,将重叠区间插入到合适的位置即可。第一步,我们先寻找新区间和原始区间列表的重叠部分。因此,我们首先遍历一遍原始区间列表,,原始区间列表中的其中一个区间为。

2024-04-14 22:29:50 800

原创 LeetCode 678——有效的括号字符串

从左往右遍历字符串,如果是左括号或者星号,则将位置索引分别入栈,如果遇到右括号,需要两个栈,一个用来保存左括号所在的位置索引,一个用来保存星号所在的位置索引。最终,左括号也匹配完,那么字符串有效,因为余下的星号可以作为空字符串。

2024-04-14 18:51:21 234 1

原创 LeetCode 刷题汇总——题目序号顺序版

剑指 Offer——和为 S 的两个数字剑指 Offer——数字在排序数组中出现的次数剑指 Offer——和为 S 的连续正数序列剑指 Offer——最小的 K 个数剑指 Offer——连续子数组的最大和剑指 Offer——数组中的逆序对LeetCode 1——两数之和LeetCode 2——两数相加LeetCode 3——无重复字符的最长子串LeetCode 4——两个排序数组中的中位数LeetCode 5——最长回文子串LeetCode 10——正则表达式匹配LeetCode 19

2024-04-10 22:54:46 572

原创 LeetCode 80—— 删除有序数组中的重复项 II

当然了,上面的思路不容易理清,比较简单的一个实现是利用快慢指针。一开始快慢指针都指向第 3 个元素,如果。指针,二者都前进一步。最后,slow指针指向的位置即为结果所求。,说明重复元素超过了 2 个,只需要向前移动。,最多遍历 2 遍数组,空间复杂度为。指针指向的元素移动到。

2024-04-10 21:10:05 368

原创 LeetCode 994—— 腐烂的橘子

【代码】LeetCode 994—— 腐烂的橘子。

2024-04-09 22:36:10 463

原创 LeetCode 377——组合总和 Ⅳ

去网上一查,原来 LeetCode 会用这同一个类去测试所有的测试用例,那么我的。如果数组中存在负数的话,会存在一个包含正数和负数的序列,它们的和为 0,也就是说,于是,我开始实现了第一版代码,完全就照着上面的解题思路来写,使用递归。很不幸,还是出错了,看起来是整型数超出表示范围了,一个简单的思路是把。的某个中间变量可能越界了,然后这个中间变量实际上是用不到的。,所以,答案也就是错的了,此路看来也不通!的元素组合的个数,首先,我们遍历。很可惜,没有通过全部测试用例,超时了。然后,如果前两个元素我们都放置。

2024-04-09 22:09:16 985 1

原创 LeetCode 309—— 买卖股票的最佳时机含冷冻期

为每天这几个状态下对应的最大收益,由于持有股票时不知道是哪天买入的,所以我们还需要知道当天状态是持有股票时的买入股票价格。根据题意,每一天有这样几个状态:买入股票、卖出股票、冷冻期、持有股票,因此,我们假设。中所有的列表都是同一个,修改一个所有的都会跟着变动。天才可以卖出,状态是二者的较大值,所以有。天才可以是持有,这时候,我们需要比较是。天是买入股票或者持有股票,第。天才可以是冷冻期,所以有。获得的价值大,前者的价值是。,如果后者的价值大,则更新。天是卖出或者冷冻期,第。天是买入或者持有,第。

2024-03-26 21:51:24 852

原创 LeetCode 1027——最长等差数列

我们初始化所有元素为 -1,然后从前往后开始遍历数组,根据上面的公式依次更新。直接就可以用一个大小为 501 的数组来代替了,数组的下标就可以作为索引。这样,速度和内存都有所提升,但提升得也非常有限。于是,我开始实现了第一版代码,完全就照着上面的解题思路来写。后,通过了,但是执行用时和消耗内存都排在了末尾。就是充当哈希表的作用,不需要有序,没有必要用。,如果不在这个范围,肯定是无效的。很可惜,没有通过全部测试用例,超时了。的等差数列的最大长度,那么,如果。的前面,所以,针对每一个。

2024-03-24 21:33:02 878 2

原创 Detecting Everything in the Open World: Towards Universal Object Detection

论文题目《Detecting Everything in the Open World: Towards Universal Object Detection》发表情况,CVPR2023[论文地址][https://arxiv.org/pdf/2303.11749.pdf][代码地址][https://github.com/zhenyuw16/UniDetector]本文旨在解决通用目标检测问题,也即检测任意场景、任意类别的目标。

2023-08-05 21:19:37 800

原创 通过 Colab 下载 Google Driver 上的大文件到内网服务器

快速下载 Google Drive 上的大文件

2023-02-14 20:08:26 2183 7

原创 人物交互算法(HOI)学习笔记之 ——QPIC

HOI 检测,transformer

2022-08-27 17:52:03 3237

原创 对 OpenCV 中 getRotationMatrix2D 函数和仿射变换的一点理解

getRotationMatrix2D()这个函数给定一个旋转中心点的坐标、旋转角度和缩放因子,返回一个仿射变换矩阵 M,不考虑缩放因子的话其形式大概如下:M=[cosθsinθdx−sinθcosθdy]M = \begin{bmatrix} cos\theta&sin\theta&dx \\ -sin\theta&cos\theta&dy\end{bmatrix}M=[cosθ−sinθ​sinθcosθ​dxdy​]逆时针旋转 θ\thetaθ 取正值,反之为负.

2021-01-31 20:31:23 1027

原创 Python 学习笔记之——正则表达式

0. 常用匹配规则^ 匹配字符串的开头$ 匹配字符串的结尾[...] 匹配一组字符,比如 [abc] 表示匹配小写字母 a 或者 b 或者 c,[a-z] 表示匹配所有的小写字母,[0-3] 表示匹配数字 0,1,2,3[^...] 匹配不在 []中的字符. 匹配除了换行符以外的任意字符,当匹配模式指定为 re.S 时则可以匹配任意字符* 匹配零个或者多个表达式+ 匹配一个或者多个表达式? 匹配零个或者一个前面的表达式,非贪婪方式,也就是尽可能少地匹配{n} 精确匹配 n 个前面的表达式

2020-08-05 10:34:06 308

原创 Python 学习笔记之——BeautifulSoup 库

0. 安装及导入安装 pip install beautifulsoup4导入 from bs4 import BeautifulSoup如果选择 lxml 解析器的话还需要安装 pip install lxml,这个解析器的优点是效率更高1. 访问结构化数据假设我们有下面这段 HTML 代码,html_doc = """<html><head><title>The Dormouse's story</title></head>

2020-08-05 10:31:05 290

原创 3-D Quasi-Recurrent Neural Network for Hyperspectral Image Denoising

1. 摘要作者设计了一个 QRU3D 块来对高光谱图像进行去噪,其中的 3D 卷积负责提取空间和光谱的结构相关性,而近似循环池化函数则用来捕获光谱方向的全局相关性。此外,作者还引入了交替方向结构,以消除单向的因果关系,并且无需额外的计算成本。2. 方法介绍2.1. QRU3DQRU3D 块的结构如上图所示,包含两个主要步骤:3D 卷积和近似循环池化。其中输入 III 的大小 1...

2020-04-21 11:16:25 445

原创 Noise2Void - Learning Denoising from Single Noisy Images

1. 摘要Noise2Noise (N2N) 可以利用一对独立的噪声图片来训练去噪模型,在这里,作者更进一步提出了一个策略 Noise2Void (N2V) ,只利用噪声图像即可。因此 N2V 可以被应用在一些其它方法不能应用的领域,特别是生物医学图像,在这里干净或者噪声目标图像经常是不可能获取到的。2. 方法介绍噪声图像的产生 x=s+nx=s+nx=s+n,可以看作是从下面的联...

2020-04-21 11:04:45 4412

原创 Zero-Shot Hyperspectral Image Denoising With Separable Image Prior

1. 摘要大量的高光谱数据收集起来比较困难,所以作者提出了一种自监督策略,可以从一张退化图像构建出训练数据来训练一个去噪网络而不需要任何干净数据。另外,高光谱图像的光谱波段数一般比较多,计算负载较大,因此作者引入深度可分离卷积来实施去噪,既能捕获高光谱图像的结构先验又能减小模型复杂性。2. 方法介绍2.1. 深度可分离卷积的性能现在,我们考虑一个图像填充任务。假设 A∈{0,1}...

2020-04-21 10:47:15 383

原创 从 Python 调用 MATLAB 函数的三种方法

0. 实验环境Ubuntu 16.04Matlab R2015b1. 借助于 mlab 库安装方法非常简单,只需一行命令 sudo pip install mlab 即可。import numpy as npfrom PIL import Imagefrom mlab.releases import latest_release as matlabimage = Image....

2020-01-09 14:27:31 4919 5

原创 CondenseNet: An Efficient DenseNet using Learned Group Convolutions

1. 摘要作者提出了一个前所未有高效的新奇网络结构,称之为 CondenseNet,该结构结合了密集连接性和可学习的分组卷积模块。密集连接性有利于网络中的特征复用,而可学习的分组卷积模块则可以移除多余的特征复用之间的连接。在测试的时候,训练好的模型可以使用标准的分组卷积来实现,在实际中计算非常高效。2. 介绍和相关工作深度学习模型一般都是在多个 GPU 上进行训练,然后再在计算资源...

2019-12-16 10:53:27 772

原创 ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design

1. 摘要最近,神经网络的架构设计都是基于计算复杂度的间接度量,比如 FLOPs。然而,直接的度量比如运行速度,其实也会依赖于内存访问和平台特性等其它因素。因此本文建议直接在目标平台上用直接度量进行测试。基于一系列控制条件实验,作者提出了设计高效网络结构的一些实用指导思想,并据此提出了一个称之为 ShuffleNet V2 的新结构。2. 介绍为了衡量计算复杂度,一个广泛采用的度量...

2019-12-16 10:51:42 263

原创 ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

1. 摘要作者介绍了一种计算非常高效的 CNN 结构称之为 ShuffleNet,它是专门为计算资源非常有限的移动设备设计的。这种新的结构主要用到了两种操作:分组点卷积(pointwise group convolution )和通道打乱(channel shuffle),这可以极大降低计算代价同时保持模型的准确率。2. 介绍和相关工作经典的 Xception 和 ResNeXt ...

2019-12-16 10:49:57 375

原创 Searching for MobileNetV3

1. 摘要基于网络架构搜索和 NetAdapt 算法,作者提出了新一代的 MobileNets,并通过一些先进的结构对其进行了改进。作者发布了两个模型 MobileNetV3-Large 和 MobileNetV3-Small 分别应用于资源较多和较少的场景,这些模型也可以被调整并应用到目标检测和语义分割等其它领域。2. 高效的网络构建块MobileNetV1 引入了深度可分离卷积...

2019-12-16 10:47:58 344

原创 MobileNetV2: Inverted Residuals and Linear Bottlenecks

1. 摘要作者提出了一个新的网络架构 MobileNetV2,该架构基于反转残差结构,其中的跳跃连接位于较瘦的瓶颈层之间。中间的扩展层则利用轻量级的深度卷积来提取特征引入非线性,而且,为了维持网络的表示能力作者去除了较窄层的非线性激活函数。2. 讨论和直觉2.1. 深度可分离卷积MobileNetV2 采用和 MobileNetV1 一样 3×3 大小的深度可分离卷积,相比标准卷积可以...

2019-12-11 21:28:08 384

原创 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

1. 摘要作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络。作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以便于网络设计者针对自己任务的限制来选择大小合适的模型。2. 相关工作设计轻量级的高效模型大致可以分为两个方向:压缩预训练好的模型或者直接训练小的网络。针对前者,模型压缩主要是基于量化、哈...

2019-12-11 21:25:10 825

原创 SqueezeNet: AlexNet-level accuracy with 50x fewer parameters

1. 摘要最近关于深度卷积神经网络的研究都集中在提高准确率上,对于准确率在同一个水平的网络,更小的网络结构至少有三个优点:1. 在分布式训练的时候需要更少的跨服务器通信;2. 从云端导出新模型到自动驾驶汽车上需要更小的带宽;3. 在 FPGA 等其它硬件内存有限的情况下更容易部署。作者提出了一个称之为 SqueezeNet 的网络结构,可以达到和 Alex-Net 同等水平的准确率但参数...

2019-12-11 21:23:36 370

原创 LeetCode 409——最长回文串

1. 题目2. 解答我们先来看一看回文子串的规律,如果回文子串的长度为偶数,那么其中所有的每个元素都出现了偶数次;如果回文子串的长度为奇数,那么有一个元素出现了奇数次而其余每个元素都出现了偶数次。所以我们需要做的就是遍历一遍字符串,统计每个元素出现的次数。这里只有大写字母和小写字母,我们用一个大小为 52 的数组充当散列表即可。最后我们就可以得出偶数的元素有多少个,再看看有没有多余的一个...

2019-12-05 18:42:50 203

原创 LeetCode 516——最长回文子序列

1. 题目2. 解答与最长回文子串类似,我们可以用动态规划来求解这个问题,只不过这里的子序列可以不连续。我们定义状态 state[i][j] 表示子串 s[i, j] 的最长回文子序列长度,那么状态转移方程为:state[i][j]=1 如果 i=jstate[i][j] = 1 \space 如果 \space i = jstate[i][j]=1 如果&n...

2019-12-05 18:41:20 173

原创 LeetCode 5——最长回文子串

1. 题目2. 解答我们定义状态 state[i][j] 表示子串 s[i, j] 是否为回文子串,如果 s[i, j] 为回文子串,并且有 s[i-1] == s[j+1],那么 s[i-1, j+1] 也为回文子串。状态转移方程为:state[i][j]=1 如果 i=jstate[i][j] = 1 \space 如果 \space i = jstate[i][j...

2019-12-05 18:38:13 181 2

原创 LeetCode 300——最长上升子序列

1. 题目2. 解答2.1. 动态规划我们定义状态 state[i] 表示以 nums[i] 为结尾元素的最长上升子序列的长度,那么状态转移方程为:state[i]=max(state[j]+1) 如果 nums[i]>nums[j],0⩽j<istate[i] = max(state[j] + 1) \space 如果 \space nums[i] &g...

2019-12-05 18:36:45 172

原创 动态规划之——最长公共子串和矩阵链乘法

1. 最长公共子串最长公共子串与最长公共子序列有一些类似,只不过这里子串要求是连续的。这里我们定义 lcs[i][j] 表示以 s[i] 与 t[j] 为末尾元素的最长公共子串长度,那么我们有:lcs[i][j]={lcs[i−1][j−1]+1如果 s[i]==t[j]0如果 s[i]!=t[j]lcs[i][j] = \begin{cases} lcs[i-1]...

2019-12-05 18:33:51 234

原创 动态规划之——莱文斯坦距离和最长公共子序列

1. 如何衡量字符串的相似性如何量化两个字符串之间的相似性呢?我们可以用编辑距离,也就是将一个字符串通过增、删、替换字符转化成另一个字符串需要的最少编辑次数。编辑距离越小,说明两个字符串越相似。其中,莱文斯坦距离允许增、删和替换操作,表示两个字符串差异的大小;最长公共子序列只允许增删操作,表示两个字符串相似程度的大小。下面的例子中莱文斯坦距离为 3,最长公共子序列为 4。2. 莱文斯坦距离...

2019-12-05 18:31:21 222

原创 动态规划之——01 背包和最短路径

1. 什么是动态规划动态规划一般用来求解最优问题,这些问题一般都可以分为若干个决策阶段,每次决策对应着一组状态。我们要做的就是寻找出一组决策序列,这组决策序列能产生我们期望的最优解。能用动态规划求解的问题有以下三个特征:最优子结构,当一个问题的优化解包含了子问题的优化解时,我们说这个问题具有最优子结构,也就是我们能通过前面阶段的状态得出后面阶段的状态。无后效性,一是表示前面状态不受...

2019-12-05 18:29:29 371

原创 分治算法

1. 分治算法分治算法的核心就是分而治之,也就是将原问题划分为若干个规模更小但结构与原问题相似的子问题,递归地解决这些子问题然后进行合并,就可以得到原问题的解。比如归并排序就是将原数据划分为左右两个部分,然后分别递归对左右两部分排序,排完序后再合并两个有序区间数据即可得到最终整体有序的数据。分治算法能解决的问题,一般需要满足以下几个条件:原问题与分解后的子问题求解方法相同各个子问题可以...

2019-12-03 22:19:03 1785

原创 回溯算法

1. 什么是回溯算法回溯可以看作是一个搜索问题解的过程,这个过程分为很多个阶段,每一个阶段我们都有很多个选择,但我们不知道选择哪一个,所以就随机选择一个继续进行下一个阶段,如果发现找不到解,就回退到上一个阶段采取另外的选择再继续搜索。比如之前图的深度搜索问题,我们就是沿着起始顶点一直向下搜索,发现走不下去了再选择另外一条边继续搜索。另一个经典的例子则是八皇后问题,我们有一个 8×8 的棋盘,...

2019-12-03 22:12:30 205

原创 线性时间求取第 K 大数

求 Top K 的算法主要有基于快速排序的和基于堆的这两种,它们的时间复杂度都为 O(nlogK)O(nlogK)O(nlogK)。借助于分治思想,以及快速排序的区间划分,我们可以做到 O(n)O(n)O(n) 时间复杂度。具体算法思路如下:第 1 步,我们将原数据 5 个一组划分为若干个组,最后余下的不足 5 个的额外作为一组,总组数为 g=⌈n/5⌉g=\lceil{n/5}\rceil...

2019-12-03 22:10:08 438

原创 深度和广度优先搜索算法

在社交网络中,有一个六度分割理论,具体是说,世界上任何互不相识的两人,平均只需要六步就能够建立起联系。一个用户的一度连接用户就是他的好友,二度连接用户就是他好友的好友,三度连接用户就是他好友好友的好友。给定一个用户,如何找出这个用户的所有三度(包括一度、二度和三度)好友关系呢?1. 什么是 “搜索” 算法我们知道,算法都是作用于某种具体的数据结构上的,而深度优先搜索算法和广度优先搜索算法就是...

2019-12-03 22:07:06 872

空空如也

空空如也

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

TA关注的人

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