- 博客(31)
- 收藏
- 关注
原创 剑指 Offer 09. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )思路队列实现栈,两个栈实现队列算是很基本的问题了。可以使用一个栈s_in专门储存插入的整数,一个栈s_out专门用来删除整数,插入整数时s_in直接插入,删除整数时,如果s_out有元素直接删除栈顶元素,如果没元素则把s_in的元素倒进去
2020-06-30 10:42:09
102
原创 209. 长度最小的子数组
209. 长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。思路看到连续子数组就会想到前缀和和双指针,可以用一个end指针计算数组的前缀和Sum,当Sum大于或等于s时,计算end指针和begin指针的距离,然后begin指针前进一步,Sum减小对应的数值,直到Sum再次小于s才开始移动end指针。代码class Solution {public: int
2020-06-28 10:08:13
65
原创 41. 缺失的第一个正数
41. 缺失的第一个正数给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。思路考虑原地哈希,f(nums[i]) = nums[i] - 1,第一次遍历就把数都放在对应值-1的位置上,第二次遍历对比位置上对应的值是否是i + 1即可。注意值 <= 0 或者 > n 或者对应的nums[nums[i] - 1] == nums[i]时需要中断循环。代码class Solution {public: int firstMissingPositive(vector
2020-06-27 14:19:16
54
原创 面试题 02.01. 移除重复节点
面试题 02.01. 移除重复节点编写代码,移除未排序链表中的重复节点。保留最开始出现的节点思路可以使用hash表来存储链表的值,遍历链表时查看hash表里面是否存在该值即可。注意:通过遍历链表节点的前驱节点来访问当前节点,这样遍历的好处是避免遍历当前节点时需要删除却找不到前驱节点。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next;
2020-06-26 15:34:34
75
原创 139. 单词拆分
139. 单词拆分给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。思路可以使用动态规划来解决该问题,假定dp[i]表示字符串s的前i个字符组成的子字符串[0, i - 1]能否被拆分,然后在[0, i - 1]之间遍历拆分位置j即可,由于dp[j](j < i)之前已经计算完毕,所以只要考虑位置[j, i - 1]组成的字符串是否
2020-06-25 10:36:39
73
原创 16. 最接近的三数之和
16. 最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。思路想到了三数之和的套路,也就是排序+双指针,固定一个在位置i的数后,再[i+1, n-1]范围内进行双指针枚举和cur,用一个全局变量保持三数之和sum,当枚举到的和cur与target的绝对差小于全局和sum与target的绝对差时替代即可。枚举过程中,如果枚举到的和cur小于targe
2020-06-24 09:35:50
270
原创 面试题 16.18. 模式匹配
面试题 16.18. 模式匹配你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",“go"是"b”),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。思路直接计算pattern字符串中a和b的个数,然后解二元一次方程组:len_a
2020-06-22 10:29:09
198
原创 124. 二叉树中的最大路径和
124. 二叉树中的最大路径和给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。思路不经常做二叉树,看了题解,然后想通过自己复述出来记住知识点。假定存在一个MaxGain函数,用于查找二叉树某一节点的最大贡献值,就是以该节点为根节点的子树中寻找一条起点为该节点的路径,使路径上的节点值最大。那么找出每个节点的最大贡献值后,我们如何统计最大路径和呢,其实就是节点的值+左子节点的最大贡献值+右子节点的最
2020-06-21 11:41:37
79
原创 10. 正则表达式匹配
10. 正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 。示例 1:输入: s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输
2020-06-20 18:40:12
224
原创 一文总结YOLOv4所列的Bag of specials
一文总结YOLOv4所列的Bag of specialsYOLOv4Bag of specials增加感受野SPPNetYOLOv4继上次写了一文总结YOLOv4所列的Bag of freebies之后,接下来我们分析一下YOLOv4所列出来的Bag of specials方法。Bag of specialsBag of specials,顾名思义,就是“一堆特价包”的意思,在作者看来,就是一些通过增加推理成本,改变网络结构,来提高目标检测精度的方法。增加感受野目标检测网络的精度和网络的感受野大
2020-06-18 11:14:49
3179
4
原创 1028. 从先序遍历还原二叉树
1028. 从先序遍历还原二叉树我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。思路可以从字符串S中读取节点的值和深度信息。读取字符的’-’,直到遇到数字,通过’-'的个数来知道节点的深度信息。读取数字字符
2020-06-18 10:15:36
157
原创 EfficientDet: Scalable and Efficient Object Detection(BiFPN)
目录EfficientDet: Scalable and Efficient Object DetectionBiFPNEfficientDet: Scalable and Efficient Object Detection论文:EfficientDet: Scalable and Efficient Object Detection论文地址:https://arxiv.org/pdf/1911.09070.pdf卷积神经网络的速度和精度之间存在权衡,而 EfficientDet 是一个总称,可以
2020-06-17 16:51:19
1334
原创 1014. 最佳观光组合
1014. 最佳观光组合给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。示例:输入:[8,1,5,2,6]输出:11解释:i = 0, j = 2, A[i] + A[j] + i - j = 8 + 5 + 0思路很容易就想到了暴力的双循环解法,但是我们试想一
2020-06-17 09:50:04
89
原创 ASFF:Learning Spatial Fusion for Single-Shot Object Detection
ASFF:Learning Spatial Fusion for Single-Shot Object Detection论文:Learning Spatial Fusion for Single-Shot Object Detection论文地址:https://arxiv.org/pdf/1911.09516.pdfgithub:https://github.com/ruinmessi/ASFF本篇文章最大的创新点是提出了一种新的特征融合的方式ASFF,通过学习权重参数的方式将不同层的特征融合到
2020-06-16 18:18:19
1261
1
原创 297. 二叉树的序列化与反序列化
297. 二叉树的序列化与反序列化序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 /反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。思路先序遍历,当访问到空节点时需要用#填充。重建时,先重建根节点,如果是NULL节点,返回。如果是数字节点,递归重
2020-06-16 12:57:37
65
原创 M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid(SFAM)
M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid论文:M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid论文地址:https://arxiv.org/pdf/1811.04533.pdfM2Det的提出,其实也是为了解决目标检测的多尺度问题。FPN以自上而下的方式将高层和低层特征融合得到特征金字塔。以上结构有两
2020-06-15 20:06:49
460
原创 820. 单词的压缩编码
820. 单词的压缩编码编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “” 解释: 输入不存在公共前缀。思路看到查找最长公共前缀,不由自主地想到了字典树,可能还有什么纵向横向扫描法,但我为了巩固字典树的知识,强迫自己写了一个字典树解法。需要注意的是:输出时直接输出字典树中分支为1的字
2020-06-15 11:59:43
77
原创 1300. 转变数组后最接近目标值的数组和
1300. 转变数组后最接近目标值的数组和给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。示例 1: 输入:arr = [4,9,3], target = 10输出:3解释:当选择 value 为 3 时,数组会变成
2020-06-14 20:33:40
141
原创 70. 爬楼梯
70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶 示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶思路这个应该是算动态规划的入门题目了,很容易想到用dp[n]来定义第n阶台阶有多少种方法到
2020-06-13 09:47:56
68
原创 15. 三数之和
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]思路双指针+排序,双指针使用条件一般是有序数组,先对数组进行排序后,循环枚举数组的每一个元素,固定该元素Ai,然后使用双指针在该元素右边寻找.
2020-06-12 11:35:06
200
原创 一文总结YOLOv4所列的Bag of freebies
这里写自定义目录标题YOLOv4目标检测架构功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入YOLOv4YOLOv4其实是一个结合了大量前人研究技术,加以组合并进行适当创新的高水平论文,实现了速度和精度的完美平衡。论文总结了大
2020-06-11 21:20:01
5438
3
原创 739. 每日温度
739. 每日温度根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1,1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。思路维护一个单调栈,栈底到栈顶的
2020-06-11 10:04:17
83
原创 9. 回文数
9. 回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?思路由于不能转成字符串,因而可以考虑比较整数的前半部分和后半
2020-06-10 22:48:48
94
原创 面试题46. 把数字翻译成字符串
面试题46. 把数字翻译成字符串给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”,“mcfi"和"mzi”思路想到了动态规划,令dp[i]表示以第i个数字为结尾时的翻译次数,当第i个数字
2020-06-09 10:30:39
75
原创 990. 等式方程的可满足性
990. 等式方程的可满足性给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。示例 1:输入:[“a==b”,“b!=a”]输出:false解释:如果我们指定,a = 1 且 b =1,那么可以满足第一个方程,但无法满足第二个
2020-06-08 16:04:38
154
原创 126. 单词接龙 II
126. 单词接龙 II给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则:每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回一个空列表。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设beginWord 和 endWord 是非空的,且二者不相同。示例 1:输入: beginW
2020-06-07 11:03:16
173
原创 128. 最长连续序列
128. 最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。思路通过依次访问数组元素x,不断匹配x+1,x+2,x+3。。。即可。可以使用unordered_set数据结构过滤重复元素,在O(1)时间内找到是否存在x+1等。但会存在很多重复匹配,比如x已经匹配到x+y了,再重x+1匹配也只能匹配到x+y,长
2020-06-06 11:07:58
82
原创 面试题29. 顺时针打印矩阵
面试题29. 顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 100 0 <= matrix[i].le
2020-06-05 10:40:08
69
原创 238. 除自身以外数组的乘积
238. 除自身以外数组的乘积给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶: 你可以在常数空间复杂度内完成这个题目吗?( 出于
2020-06-04 10:25:14
76
原创 837. 新21点
837. 新21点爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?示例 1:输入:N = 10, K = 1, W = 10输出:1.00000说明:爱丽丝得到一张卡,然后停止。 示例 2:输入:N
2020-06-03 11:09:33
137
原创 面试题64. 求1+2+…+n
面试题64. 求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45思路能使用的只有移位、逻辑运算符、赋值和加减法。可以使用&&的短路性质,改写递归出口。代码class Solution {public: int sumNums(int n) { n &&a
2020-06-02 12:42:49
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人