- 博客(111)
- 资源 (5)
- 收藏
- 关注
原创 二叉树的前中后序遍历方法
二叉树遍历94. 二叉树的中序遍历给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。PS: 中序遍历: 左子树->根节点->右子树; 顺序 访问 节点的值。解法1: 递归, 有很多方式,这是其中一种。 时间复杂度O(n)O(n)O(n), 空间复杂度O(n)O(n)O(n);/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;
2022-05-31 12:24:30
488
1
原创 OCR paper readlings list
OCR paer reading list♡\heartsuit♡: 论文未读过,待读♠\spadesuit♠: 论文已读TextFuseNet: Scene Text Detection with Richer Fused Features ; code ♡\heartsuit♡RRPN++: Guidance Towards More Accurate Scene Text Detection ; code ♡\heartsuit♡Detecting Text in Natural Im
2021-05-21 13:32:16
350
原创 NMS和Soft-NMS的原理和Pytorch代码实现
NMS都不会,做什么Detection!Non-maximum suppression(非极大值抑制)算法NMS原理:首先得出所有的预测框集合B、 对应框的得分Scores, NMS(IoU)阈值T;定义存放侯选框的集合H(初始为Null), 对Scores排序选出得分最大的框为maxBox,将maxBox从集合B中移到集合H中,集合B中没有maxBox框了;计算maxBox和B中剩余的所有框的IoU, 将IoU大于T的从B中删除(认为和maxBox重叠了);重复2~3步骤,直
2021-03-23 01:19:33
4619
2
原创 子序列 子数组问题 Leetcode
子序列 子数组问题53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。解法1: 贪心法class Solution: def maxSubArray(self, nums: List[int]) -> int: max_sum = nums[0]
2021-02-22 09:58:22
1751
原创 回溯 组合 排列 生成 LeetCode
回溯 组合 排列 生成 算法题目77. 组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解法1: 回溯 递归class Solution: def combine(self, n: int, k: int) -> List[List[int]]: if k > n:
2021-02-08 13:37:53
190
原创 括号题目 Leetcode
括号系列问题 Leetcode20. 有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。解法1:class Solution: def isValid(self, s: str) -> bool: while '()' in s or '[]' in s or '{}' in s: s = s.re
2021-02-07 15:23:39
561
原创 网格DFS LeetCode
岛屿问题(DFS)200. 岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1
2021-02-01 18:45:20
142
原创 区间问题 LeetCode
*表示重点复习题,没做出来区间问题1. 56. 合并区间 *给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。解法1
2021-01-14 15:28:52
360
原创 买卖股票系列问题 Leetcode题目
leetcode 刷题记录一. 买卖股票系列问题1. 121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-
2021-01-07 21:27:35
481
原创 回溯法 题目 leetcode
1.22. 括号生成数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例:输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ]方法1: 回溯法, 学习记忆class Solution: def generateParenthesis(self, n: int) -> L...
2020-12-27 16:07:55
205
1
原创 回文串 leetcode
1.125. 验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false解法1:class Solution: def isPalindrome(self, s: str) -> bool: ss =.
2020-12-26 11:11:05
117
原创 B 中等题 LeetCode
中等题 按出题指数排列1.2. 两数相加给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解法1:...
2020-12-26 10:47:51
161
2
原创 整数问题(求和 拆分 替换等) leetcode问题
1.829. 连续整数求和给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N?示例 1:输入: 5输出: 2解释: 5 = 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 5。示例 2:输入: 9输出: 3解释: 9 = 9 = 4 + 5 = 2 + 3 + 4示例 3:输入: 15输出: 4解释: 15 = 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5解法1: 暴力 超时 ????
2020-12-14 15:36:14
1224
原创 子序列题目 Leetcode题目
1.53. 最大子序和给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解法1: 贪心法class Solution: def maxSubArray(self, nums: List[int]) -> int: # 最大子序列和, 很重要的一个题; #...
2020-12-11 21:35:54
205
原创 字典序 Leetcode题目
1.440. 字典序的第K小数字给定整数n和k,找到1到n中字典序第k小的数字。注意:1 ≤ k ≤ n ≤ 109。示例:输入:n: 13 k: 2输出:10解释:字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。解法1: class Solution: def findKthNumber(self, n: int, k: int) -> i...
2020-12-10 20:33:23
167
原创 动态规划题 leetcode
1.62. 不同路径一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向..
2020-12-09 19:53:30
814
1
原创 二分查找方法 leetcode题
这里用来 记录 使用二分查找方法 的题目1.面试题 10.03. 搜索旋转数组搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5在该数组中的索引)示例2: 输入:arr = .
2020-12-08 20:02:50
468
转载 卷积神经网络中的Separable Convolution_转载
卷积神经网络在图像处理中的地位已然毋庸置疑。卷积运算具备强大的特征提取能力、相比全连接又消耗更少的参数,应用在图像这样的二维结构数据中有着先天优势。然而受限于目前移动端设备硬件条件,显著降低神经网络的运算量依旧是网络结构优化的目标之一。本文所述的Separable Convolution就是降低卷积运算参数量的一种典型方法。常规卷积运算假设输入层为一个大小为64×64像素、三通道彩色图片。经过一个包含4个Filter的卷积层,最终输出4个Feature Map,且尺寸与输入层相同。整个过程可以用下图
2020-12-08 09:35:52
248
原创 BP算法公式推导
令表示第层的第个神经元到第层的第个神经元的连接权值,表示第层第个神经元的输入,表示第层第个神经元的输出,表示层第个神经元的偏置,C表示代价函数,则有:其中,表示激活函数。训练多层网络的目的就是使代价函数C最小化.定义代价函数为:可以看出,这个函数依赖于实际的目标值,可以看成权值和偏置的函数,通过不断的修改权值和偏置值来改变神经网络的输出值.接下来更新权值和偏置:首先定义误差,令表示第层第个神经元上的误差(?),定义为...
2020-11-30 15:12:48
761
1
原创 排序题 LeetCode题
1.1370. 上升下降字符串给你一个字符串s,请你根据下面的算法重新构造字符串:从 s中选出 最小的字符,将它 接在结果字符串的后面。从 s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它 接在结果字符串后面。重复步骤 2 ,直到你没法从 s中选择字符。从 s中选出 最大的字符,将它 接在结果字符串的后面。从 s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它 接在结果字符串后面。重复步骤 5,直到你没法从 s中选择字符。...
2020-11-25 18:10:27
141
原创 贪心算法 leetcode编程题
1.452. 用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。...
2020-11-25 18:05:57
141
原创 牛客网 赛码在线编程中数据读取问题
一. 数据读取的方式(python3)1. input()读取输入数据while True: try: inputs = input() except: break2. 网站的数据输入是是一个含有多行数据的input文件(.in文件,可以用文本打开), 可以直接用sys.stdin.readlines()读取所有行数据,这样在本地编译器写代码时,可以先创建一个input.in文件,将所有示例代码复制到文件中,保持原数据格式不变, 创建以下..
2020-11-02 17:14:31
1451
原创 笔试题记录
逆波兰表达式 是称为 后缀表达式, 把运算量写在前面, 把算符写在后面写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式拆开写各个部分的: 按优先级1.a*(b-c*d) -> abcd*-* (逆波兰表达式)2.f/g*(h+i*j-k) -> fg/hij*+k-* 3.a*(b-c*d)+e-f/g*(h+i*j-k) -> abcd*-*e+fg/hij*+k-*- (逆波兰表达式)...
2020-10-26 14:32:37
250
原创 844. 比较含退格的字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。解法1: 从前向后处理class Solution: def backspa.
2020-10-20 21:48:06
153
原创 day7: 剑指 Offer 44. 数字序列中某一位的数字
1.剑指 Offer 44. 数字序列中某一位的数字数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3输出:3示例 2:输入:n = 11输出:0限制:0 <= n <2^31解法1: 做的想哭!class Solution: def findNthDigit...
2020-10-08 18:01:51
114
原创 day6: 数组
1.18. 四数之和给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1, 0, 0, 1], [-2, -1, 1, 2], ...
2020-10-07 22:25:18
147
原创 day 5: 字符串
1.剑指 Offer 38. 字符串的排列输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]解法1. 递归class Solution: def permutation(self, s: str) -> List[str]: # # 字符串的全排列 resul.
2020-09-29 11:44:42
326
原创 第 208 场周赛
1.5523. 文件夹操作日志搜集器class Solution: def minOperations(self, logs: List[str]) -> int: # 栈,先进 后出 zhan = ['main'] for log in logs: if log == './': # 在当前文件夹, 不用作出改变 pass .
2020-09-27 14:12:35
150
原创 LCP 18. 早餐组合
小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 x 元。请返回小扣共有多少种购买方案。注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1示例 1:输入:staple = [10,20,5], drinks = [5,5,2], x = 15输出:6解释:小扣有 6 种购买方案,所
2020-09-24 14:03:54
161
原创 day5: 链表
1.剑指 Offer 22. 链表中倒数第k个节点输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.解法1:class ListNode: def __init__(sel.
2020-09-23 16:19:40
190
原创 day4: 剑指 Offer 64. 求1+2+…+n
剑指 Offer 64. 求1+2+…+n求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45解法1:class Solution: def sumNums(self, n: int) -> int: # 递归 def getnum(n): ..
2020-09-23 14:03:44
120
原创 python 异或的应用
符号 描述 运算规则 & 与 两个位都为1时,结果才为1 (统计奇数) 全1为1 | 或 两个位都为0时,结果才为0 (统计偶数) 全0为0...
2020-09-22 21:56:00
1677
原创 剑指 Offer 46. 把数字翻译成字符串
剑指 Offer 46. 把数字翻译成字符串给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"解法1: 递归class Solution: .
2020-09-16 16:50:04
93
原创 剑指 Offer 59 - II. 队列的最大值
剑指 Offer 59 - II. 队列的最大值请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value需要返回 -1示例 1:输入: ["MaxQueue","push_back","push_back","max_value","pop_front","max_value"][[],[1],[2],[],[],[]].
2020-09-16 15:19:35
208
原创 day3: 剑指 Offer 48. 最长不含重复字符的子字符串
剑指 Offer 48. 最长不含重复字符的子字符串请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 ...
2020-09-15 18:45:46
214
原创 day2:215. 数组中的第K个最大元素 快速排序 python代码
"""快速排序思想: 基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。"""# 方法1: 递归def partition(arr, first, end): i, j = first, end while i < j: while i < j and arr[i] <= ..
2020-09-07 16:17:55
216
原创 对BN的理解
BN原理与使用过程详解内部协变量偏移(Internal Covariate Shift)和批归一化(Batch Normalization)对于BN层的理解关于BN防止过拟合的分析BN(Batch Normalization) 原理与使用过程详解
2020-09-06 11:11:07
331
原创 求正整数的平方根
"""求正整数的平方根。二分查找"""def sqrt(val, t): if val < 0 or t < 0: return 0 left = 0 right = val mid = (left + right) / 2 offset = 2 * t while offset > t: temp = mid * mid if temp > val: .
2020-09-05 15:48:38
772
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人