自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 124 —— 二叉树中的最大路径和

这样的一棵树总共有六条路径,分别是:根节点、左节点-根节点、右节点-根节点、左节点、右节点、左节点-根节点-右节点,我们用一个大小为 6 的数组。接下来,我们再考虑一个更复杂的树,这棵树的根节点有左右两棵子树,每一棵子树都是类似上面示例 1 的一棵树。需要注意,当某一个节点为空的时候,比如左节点为空,那么左节点-根节点路径和为根节点的值,左节点贡献值为 0。二叉树的问题首先我们要想想是否能用递归来解决,本题也不例外,而递归的关键是找到子问题。来分别表示这六条路径的路径和,那么所求的最大路径和即为。

2024-05-26 12:26:52 685

原创 LeetCode 264 —— 丑数 II

之后得到的数字序列。然后,每一次,我们只需要从这三个队列头部取一个最小的元素作为下一个丑数即可。当三个队列有一个为空的时候,我们就取出下一个丑数,分别填充到三个队列中去。上面的方法可以进一步优化,其实每一次比较的时候我们只用到了三个队列头部的元素,而三个队列头部的元素又分别是某一个丑数乘以。,所以后面的丑数肯定是前面的丑数分别乘以。,由于丑数的质因子只包含。,分别代表前面的丑数乘以。这样,我们维护三个队列,后得到的数字,所以,

2024-05-21 22:52:49 1012

原创 LeetCode 279 —— 完全平方数

此图利用动态规划进行求解,首先,我们求出小于。,也可以省略,直接在第二个循环得到。的所有完全平方数,存放在数组。

2024-05-21 21:03:06 1147

原创 LeetCode 207 —— 课程表

第一种思路是在图中进行深度优先搜索,一开始,每个节点的状态都设置为。针对每一个没有被访问的节点,我们将其状态设置为。代表每一门课程需要先学习的课程总数。,那么它需要先学习的课程总数就减少了一门。如果当前节点的所有边都访问完了,则将其状态设置为。,那么这门课程就可以完成学习,我们将其放入队列。首先,我们建立一个有向图,如果学习课程。首先还是建立一个有向图,只不过这次,,那么所有课程也就都可以完成学习了。的所有边,对所有下一个节点的。需要先学习的课程总数为。此时,如果有另一门课程。最后,如果所有课程的。

2024-05-21 20:20:19 948

原创 LeetCode 131 —— 分割回文串

然后在每个切割次数下,切割位置可以任意选择。而每一个切割方案我们都需要遍历字符串一次,时间复杂度为。最坏的情况下,字符串中所有的字符都相等,那么怎么分割都是对的,假设字符串长度为。以此类推,直到把整个字符串切割完毕,就得到了其中的一个分割方案。,这样我们就知道了所有的子串是否是回文子串。,所以,算法的整体时间复杂度为。是回文子串,那么我们就在第。是回文子串,那么我们就在第。中的思路,我们先求出。个位置进行第一次分割。个位置进行第二次分割。

2024-05-02 17:09:57 1079

原创 LeetCode 139 —— 单词拆分

可以被字典中出现的单词拼接,并且。由于需要两层循环,所以时间复杂度为。,另外,我们需要一个哈希表来存储。同时,我们定义空字符串。

2024-05-02 15:37:45 1106 2

原创 LeetCode 15 —— 三数之和

首先我们对数组进行从小到大排序,然后遍历数组。,由于三元组的索引互不相同,所以余下的。个也即最后一个元素。同时,结果中不能包含重复的三元组,所以。后面的元素中取,而且。

2024-05-02 11:32:04 1163 2

原创 LeetCode 11—— 盛最多水的容器

虽然可以跳过一些循环,代码也通过了测试,但时间复杂度仍然是。会变小,容器面积肯定会变小,所以我们只能让垂线。组成的容器可以盛的水最多,那么我们把垂线。往左移动,那么容器的高度不会大于。暴力法,遍历所有可能的垂线对。,应该会有更高效的解决办法。如果这时候我们让垂线。,盛的水肯定会变多。

2024-05-01 23:22:23 1054

原创 LeetCode 213 —— 打家劫舍 II

所以,第一种方案就是不偷窃最后一个房屋,那么我们从第一个房屋偷到倒数第二个房屋,看看这样能偷窃到的最大值是什么。第二种方案则是从最后一个房屋偷到第二个房屋,这样也有一个最大的偷窃金额。而这两种方案的较大值也就是我们题目所求。

2024-05-01 22:18:32 406 1

原创 LeetCode 198—— 打家劫舍

所以取前一个房间不偷窃可以获得的最大金额再加上当前房屋的价值。个房屋可以获得的最高金额。有关系,所以,我们只需要两个状态值即可。个房屋可以获得的最高金额,而。此题使用动态规划求解,假设。,所以取二者的最大值。

2024-05-01 22:11:04 1181

原创 LeetCode 69—— x 的平方根

的时候均成立,但由于我们这里求的是整数,所以则是当。需要注意,为了避免求平方的时候整数溢出,需要选用。轴的交点足够接近,那么我们就得到方程的解了。的关系,然后找到最后一个平方小于等于。的值,我们可以用牛顿迭代法来求解。的时候我们可以将搜索区间缩短为。处作新的切线,如果两次切线与。实际上,我们所求的即是方程。二分查找法,对于整数。

2024-05-01 17:14:02 771 1

原创 LeetCode 面试题 17.14 —— 最小 k 个数

个元素开始遍历,如果其小于堆顶元素,那么就拿它替换掉堆顶元素,并将其插入到堆中的合适位置,最后,整个数组都访问后留在堆中的。,那么我们要找的分区点就落在右边区间,我们去右边区间继续递归寻找。第一种方法就是利用快速排序,第一次排序后,数组被划分为了左右两个区间。,那么我们要找的分区点就落在左边区间,我们去左边区间继续递归寻找。个元素建一个大顶堆,树顶的元素是最大的,然后,从第。,那么左边的区间就正好是我们要找的最小的。第二种方法就是利用堆,我们对数组前。个元素即是我们所求。

2024-05-01 12:47:54 1328

原创 LeetCode 面试题 17.08 —— 马戏团人塔

为什么身高相等的情况下,要按照体重从高到低排序呢?因为,如果按照体重从低到高排序的话,第二个步骤身高相等的人就会满足体重的上升子序列,但实际上,题目要求的则是上面的人要比下面的人高一点,这时候,序列已经满足了在上面的人要比下面的人矮一点,然后,我们只需要保证提取到一个最长的体重的上升子序列即可。而如果体重按照升序排列的话,那么身高是。首先,我们对人的身高按照从小到大排序,,最终满足要求的其中一个序列是。的解答思路,贪心+二分查找。,这是不满足题意要求的。

2024-04-27 16:13:03 1014

原创 LeetCode 面试题 08.02——迷路的机器人

此题就是一个典型的图搜索题,一种就是广度优先搜索,一种就是深度优先搜索。

2024-04-26 21:06:52 193

原创 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 1067

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

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

2024-04-17 21:40:43 245

原创 LeetCode 409—— 最长回文串

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

2024-04-16 22:21:22 322 2

原创 LeetCode 113—— 路径总和 II

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

2024-04-15 21:26:08 518 3

原创 LeetCode 57—— 插入区间

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

2024-04-14 22:29:50 844

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

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

2024-04-14 18:51:21 301 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 739

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

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

2024-04-10 21:10:05 428

原创 LeetCode 994—— 腐烂的橘子

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

2024-04-09 22:36:10 626

原创 LeetCode 377——组合总和 Ⅳ

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

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

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

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

2024-03-26 21:51:24 904

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

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

2024-03-24 21:33:02 951 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 889

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

快速下载 Google Drive 上的大文件

2023-02-14 20:08:26 2451 8

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

HOI 检测,transformer

2022-08-27 17:52:03 3929 3

原创 对 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 1109

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

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

2020-08-05 10:34:06 336

原创 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 323

原创 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 478

原创 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 4797

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

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

2020-04-21 10:47:15 443

原创 从 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 5146 5

原创 CondenseNet: An Efficient DenseNet using Learned Group Convolutions

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

2019-12-16 10:53:27 816

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

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

2019-12-16 10:51:42 292

原创 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 410

原创 Searching for MobileNetV3

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

2019-12-16 10:47:58 376

空空如也

空空如也

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

TA关注的人

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