- 博客(582)
- 收藏
- 关注
原创 论文阅读《LGPMA:Complicated Table Structure Recognition with Local and Global Pyramid Mask Alignment》
表格识别是一项很有挑战的任务。以前的方法从不同粒度的元素(行/列,文本区域)开始处理问题,这从某种程度上有损启发式规则,忽略了空细胞分裂等问题。基于表结构特征,我们发现获取文本区域的对齐bounding box可以有效地保持不同单元格的整个相关范围。然而,由于视觉歧义,很难准确预测对齐的bounding box。在这篇文章中,我们通过充分利用局部特征蕴含的文本信息和全局特征蕴含的单元格关系,来获得更可靠的对齐的bounding box。
2023-09-04 21:35:03 395 1
原创 论文阅读《Nougat:Neural Optical Understanding for Academic Documents》
科学知识主要存储在书籍和科学期刊中,通常以PDF的形式。然而PDF格式会导致语义信息的损失,特别是对于数学表达式。我们提出了Nougat,这是一种视觉transformer模型,它执行OCR任务,用于将科学文档处理成标记语言,并证明了我们的模型在新的科学文档数据集上的有效性。
2023-09-04 21:19:05 1506 1
原创 Leetcode之找到最接近目标值的函数值
题目:Winston 构造了一个如上所示的函数func。他有一个整数数组arr和一个整数target,他想找到让|func(arr, l, r) - target|最小的 l和 r。请你返回|func(arr, l, r) - target|的最小值。请注意,func 的输入参数l 和r需要满足0 <= l, r < arr.length。示例 1:输入:arr = [9,12,3,7,15], target = 5输出:2解释:所有可能...
2021-11-10 10:47:02 5081
原创 Leetcode之翻转对
题目:给定一个数组nums,如果i < j且nums[i] > 2*nums[j]我们就将(i, j)称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。示例 1:输入: [1,3,2,3,1]输出: 2示例 2:输入: [2,4,3,5,1]输出: 3注意:给定数组的长度不会超过50000。输入数组中的所有数字都在32位整数的表示范围内。代码:class Solution {public: int reverse(v...
2021-11-09 10:26:50 342
原创 Leetcode之相似字符串组
题目:如果交换字符串X 中的两个不同位置的字母,使得它和字符串Y 相等,那么称 X 和 Y 两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,"tars" 和 "rats" 是相似的 (交换 0 与 2 的位置);"rats" 和 "arts" 也是相似的,但是 "star" 不与 "tars","rats",或 "arts" 相似。总之,它们通过相似性形成了两个关联组:{"tars", "rats", "arts"} 和 {"star"}。注意,"tars" 和 "a...
2021-11-08 12:41:26 319
原创 Leetcode之腐烂的橘子
题目:在给定的网格中,每个单元格可以有以下三个值之一:值0代表空单元格;值1代表新鲜橘子;值2代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回-1。示例 1:输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2:输入:[[2,1,1],[0,1,1],[1,0,1]]输出:-1解释:左下角的橘子(第 2 行, 第 0 列)永远不...
2021-11-05 11:21:19 220
原创 Leetcode LCP 47:入场安检
题目:「力扣挑战赛」 的入场仪式马上就要开始了,由于安保工作的需要,设置了可容纳人数总和为 M 的 N 个安检室,capacities[i] 记录第 i 个安检室可容纳人数。安检室拥有两种类型:先进先出:在安检室中的所有观众中,最早进入安检室的观众最先离开后进先出:在安检室中的所有观众中,最晚进入安检室的观众最先离开恰好 M+1 位入场的观众(编号从 0 开始)需要排队依次入场安检, 入场安检的规则如下:观众需要先进入编号 0 的安检室当观众将进入编号 i 的安检室时(0 <=
2021-11-04 11:04:01 3518
原创 Leetcode之检查[好数组]
题目:给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。假如该和结果为1,那么原数组就是一个「好数组」,则返回 True;否则请返回 False。示例 1:输入:nums = [12,5,7,23]输出:true解释:挑选数字 5 和 7。5*3 + 7*(-2) = 1示例 2:输入:nums = [29,6,10]输出:true解释:挑选数字 29, 6 和 10。29*1 + 6*(-3) + 10*(-1.
2021-10-25 09:49:03 2767
原创 Leetcode-782之变为棋盘
题目:一个 Nx N的 board仅由0和1组成。每次移动,你能任意交换两列或是两行的位置。输出将这个矩阵变为 “棋盘” 所需的最小移动次数。“棋盘” 是指任意一格的上下左右四个方向的值均与本身不同的矩阵。如果不存在可行的变换,输出 -1。示例:输入: board = [[0,1,1,0],[0,1,1,0],[1,0,0,1],[1,0,0,1]]输出: 2解释:一种可行的变换方式如下,从左到右:0110 1010 10100110 --> 1...
2021-10-22 12:15:29 295
原创 Leetcode之平衡括号字符串的最少插入次数
题目:给你一个括号字符串s,它只包含字符'(' 和')'。一个括号字符串被称为平衡的当它满足:任何左括号'('必须对应两个连续的右括号'))'。左括号'('必须在对应的连续两个右括号'))'之前。比方说"())","())(())))" 和"(())())))"都是平衡的,")()","()))" 和"(()))"都是不平衡的。你可以在任意位置插入字符 '(' 和 ')' 使字符串平衡。请你返回让 s平衡的最少插入次数。示例 1:输入:...
2021-10-21 18:26:58 268
原创 Leetcode之1680: 连续连续二进制数字
题目:给你一个整数n,请你将1到 n的二进制表示连接起来,并返回连接结果对应的 十进制数字对 109+ 7取余的结果。示例 1:输入:n = 1输出:1解释:二进制的 "1" 对应着十进制的 1 。示例 2:输入:n = 3输出:27解释:二进制下,1,2 和 3 分别对应 "1" ,"10" 和 "11" 。将它们依次连接,我们得到 "11011" ,对应着十进制的 27 。示例 3:输入:n = 12输出:505379714解释:连接结果为 "110...
2021-10-20 11:37:51 473
原创 Leetcode之大小为 K 的不重叠线段的数目
题目:给你一维空间的n个点,其中第i个点(编号从0 到n-1)位于x = i处,请你找到恰好k个不重叠线段且每个线段至少覆盖两个点的方案数。线段的两个端点必须都是整数坐标。这k个线段不需要全部覆盖全部n个点,且它们的端点可以重合。请你返回 k个不重叠线段的方案数。由于答案可能很大,请将结果对109 + 7取余 后返回。示例 1:输入:n = 4, k = 2输出:5解释:如图所示,两个线段分别用红色和蓝色标出。上图展示了 5 种不同...
2021-10-18 16:20:11 280
原创 线段树实现
#include<iostream>using namespace std;#define max_len 1000void build_tree(int arr[],int tree[],int node,int start,int end){ if(start==end){ tree[node]=arr[start]; return; } int mid=start+(end-start)/2; int left_n.
2021-09-24 11:23:18 103
原创 笔试9.23
1、多多的书架题目:给定书架数目,和每个书架上放了多少本书,输入书的编号,返回书在哪一个书架上;代码:int main(){ int n=0; cin>>n; vector<int> temp; vector<int> v(n,0); for(int i=0;i<n;i++){ cin>>v[i]; for(int j=0;j<v[i];j++){
2021-09-23 11:19:04 149
原创 Leetcode之470: 用Rand7实现Rand10
题目:已有方法rand7可生成 1 到 7 范围内的均匀随机整数,试写一个方法rand10生成 1 到 10 范围内的均匀随机整数。不要使用系统的Math.random()方法。示例 1:输入: 1输出: [7]示例 2:输入: 2输出: [8,4]示例 3:输入: 3输出: [8,1,10]提示:rand7已定义。传入参数:n表示rand10的调用次数。进阶:rand7()调用次数的期望值是多少?你能否尽量少调用 rand7...
2021-09-16 11:24:17 120
原创 Leetcode之1679: K和数对的最大数目
题目:给你一个整数数组 nums 和一个整数 k 。每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。示例 1:输入:nums = [1,2,3,4], k = 5输出:2解释:开始时 nums = [1,2,3,4]:- 移出 1 和 4 ,之后 nums = [2,3]- 移出 2 和 3 ,之后 nums = []不再有和为 5 的数对,因此最多执行 2 次操作。示例 2:输入:nums = [3,1,3,4,
2021-09-16 10:41:11 308
原创 Leetcode之665: 非递减数列
题目:给你一个长度为n的整数数组,请你判断在 最多 改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中任意的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例 2:输入: nums = [4,2,1]输出: false解释: 你不能在只改变...
2021-09-15 11:30:54 160
原创 Leetcode之2002: 两个回文子序列长度的最大乘积
题目:给你一个字符串s,请你找到s中两个不相交回文子序列,使得它们长度的乘积最大。两个子序列在原字符串中如果没有任何相同下标的字符,则它们是不相交的。请你返回两个回文子序列长度可以达到的最大乘积。子序列指的是从原字符串中删除若干个字符(可以一个也不删除)后,剩余字符不改变顺序而得到的结果。如果一个字符串从前往后读和从后往前读一模一样,那么这个字符串是一个 回文字符串。示例 1:输入:s = "leetcodecom"输出:9解释:最优方案是选择 "ete"...
2021-09-14 11:57:50 240
原创 Leetcode之679: 24点游戏
题目:你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过*,/,+,-,(,)的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符/表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 。每个运算符对两个数进行运算。特别是我们不能用-作为一元运算符。例如,[1, 1, 1, 1]作为输入时,...
2021-09-11 17:30:16 609
原创 使用python实现3d卷积
代码:import numpy as npdef conv_per_kernel(feat,kernel,s,p): c, h, w = feat.shape c, k, _ = kernel.shape newh = int((h + 2 * p - k) / s) + 1 neww = int((w + 2 * p - k) / s) + 1 res = np.zeros([newh, neww]) temp=np.zeros([h+2*p,w
2021-09-07 21:59:20 1210
原创 2021.9.5笔试题
第一题题目:找x^{y}=target,数字特别大,可能会溢出代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;struct node { double val; int x, y; bool operator<(const node& a) const { return val < a.val; }};LL w[5
2021-09-06 16:35:32 1553 3
原创 Leetcode之5866:数组的最大公因数排序
题目:给你一个整数数组 nums ,你可以在 nums 上执行下述操作 任意次 :如果 gcd(nums[i], nums[j]) > 1 ,交换 nums[i] 和 nums[j] 的位置。其中 gcd(nums[i], nums[j]) 是nums[i] 和 nums[j] 的最大公因数。如果能使用上述交换方式将 nums 按 非递减顺序 排列,返回 true ;否则,返回 false 。示例 1:输入:nums = [7,21,3]输出:true解释:可以执行下述操作完成.
2021-09-05 16:01:11 338
原创 Leetcode之5865: 访问完所有房间的第一天
题目:你需要访问n 个房间,房间从 0 到 n - 1 编号。同时,每一天都有一个日期编号,从 0 开始,依天数递增。你每天都会访问一个房间。最开始的第 0 天,你访问0 号房间。给你一个长度为 n 且 下标从 0 开始 的数组 nextVisit 。在接下来的几天中,你访问房间的 次序 将根据下面的 规则 决定:假设某一天,你访问i 号房间。如果算上本次访问,访问i 号房间的次数为 奇数 ,那么 第二天 需要访问nextVisit[i] 所指定的房间,其中 0 <= next...
2021-09-05 15:28:43 296
原创 Leetcode之5864: 游戏中弱角色的数量
题目:你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个二维整数数组 properties ,其中 properties[i] = [attacki, defensei] 表示游戏中第 i 个角色的属性。如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击和防御等级,则认为该角色为 弱角色 。更正式地,如果认为角色 i 弱于 存在的另一个角色 j ,那么 attackj > attacki 且 defensej > defensei 。返回 弱角
2021-09-05 15:05:58 301
原创 Leetcode题型总结之计算路径数
题型介绍:给定一个目标值,计算能够实现该目标的所有组合数目或者方法数目。如给定目标值target和数组(不含重复值), 计算和为target的子数组数目;这类题目需要将序列位置i和目标值target作为状态,dp[i][target]=sum{dp[i−1][k]},k=可通过选择l到达target的状态,l=0,1.....,众所周知dp的递推关系是已知状态->所有选择->当前状态(待求)。一般情况下第一维只与上一状态有关可以省略;如果不好想出dp的定义可以先通过dfs解决,然后将记忆
2021-09-03 15:09:00 616
原创 Leetcode之808:分汤
题目:有A和B 两种类型的汤。一开始每种类型的汤有N毫升。有四种分配操作:提供 100ml 的汤A 和 0ml 的汤B。提供 75ml 的汤A 和 25ml 的汤B。提供 50ml 的汤A 和 50ml 的汤B。提供 25ml 的汤A 和 75ml 的汤B。当我们把汤分配给某人之后,汤就没有了。每个回合,我们将从四种概率同为0.25的操作中进行分配选择。如果汤的剩余量不足以完成某次操作,我们将尽可能分配。当两种类型的汤都分配完时,停止操作。注意不存在先分配100 ml汤B的操作...
2021-08-31 14:56:22 123
原创 Leetcode之 剑指 Offer II 114. 外星文字典
题目:现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同。给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按这门新语言的字母顺序进行了排序 。请你根据该词典还原出此语言中已知的字母顺序,并 按字母递增顺序 排列。若不存在合法字母顺序,返回 "" 。若存在多种可能的合法字母顺序,返回其中 任意一种 顺序即可。字符串 s 字典顺序小于 字符串 t 有两种情况:在第一个不同字母处,如果 s 中的字母在这门外星语言的字母顺序中位于 t 中字母之前
2021-08-30 14:38:48 359
原创 拼多多笔试题-8.22
1、抢商品(先按评分排序,再将商品优先最后一天抢AC)def solution(arr_list): score=arr_list[0] time=arr_list[1] sorted_st=sorted(zip(score,time),key=lambda x:x[0],reverse=True) dic=dict() for score,time in sorted_st: for i in range(time,0,-1):
2021-08-27 13:07:14 248
原创 Leetcode之1325: 删除给定值的叶子结点
题目:给你一棵以root为根的二叉树和一个整数target,请你删除所有值为target 的叶子节点 。注意,一旦删除值为target的叶子节点,它的父节点就可能变成叶子节点;如果新叶子节点的值恰好也是target ,那么这个节点也应该被删除。也就是说,你需要重复此过程直到不能继续删除。示例 1:输入:root = [1,2,3,2,null,2,4], target = 2输出:[1,null,3,null,4]解释:上面左边的图中,绿色节点为叶子节点,且它们的...
2021-08-22 16:13:26 236
原创 Leetcode之1936: 新增的最少台阶数
题目:给你一个 严格递增 的整数数组 rungs ,用于表示梯子上每一台阶的 高度 。当前你正站在高度为 0 的地板上,并打算爬到最后一个台阶。另给你一个整数 dist 。每次移动中,你可以到达下一个距离你当前位置(地板或台阶)不超过dist高度的台阶。当然,你也可以在任何正 整数 高度处插入尚不存在的新台阶。返回爬到最后一阶时必须添加到梯子上的 最少台阶数。示例 1:输入:rungs = [1,3,5,10], dist = 2输出:2解释:现在无法到达最后一阶。在高度为...
2021-08-19 16:39:37 109
原创 Leetcode之1641:统计字典序元音字符串的数目
题目:给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。示例 1:输入:n = 1输出:5解释:仅由元音组成的 5 个字典序字符串为 ["a","e","i","o","u"]示例 2:输入:n = 2输出:15解释:仅由元音组成的 15 个字典序字符串为["aa","ae",
2021-08-17 11:49:18 201
原创 Leetcode之827:最大人工岛
题目:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格0 变成1 。返回执行此操作后,grid 中最大的岛屿面积是多少?岛屿 由一组上、下、左、右四个方向相连的1 形成。示例 1:输入: grid = [[1, 0], [0, 1]]输出: 3解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。示例 2:输入: grid = [[1, 1], [1, 0]]输出: 4解释: 将一格0变成1,岛屿的面积扩大为 4。示例 3:输入: ...
2021-08-14 18:52:42 323
原创 Leetcode之1401——圆和矩形是否有重叠
题目:给你一个以 (radius, x_center, y_center) 表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2),其中(x1, y1) 是矩形左下角的坐标,(x2, y2) 是右上角的坐标。如果圆和矩形有重叠的部分,请你返回 True ,否则返回 False。换句话说,请你检测是否 存在 点(xi, yi) ,它既在圆上也在矩形上(两者都包括点落在边界上的情况)。示例 1:输入:radius = 1, x_center = 0, y_center = ...
2021-08-13 16:05:31 209
原创 Leetcode之最小区间
题目:你有k个 非递减排列 的整数列表。找到一个 最小 区间,使得k个列表中的每个列表至少有一个数包含在其中。我们定义如果b-a < d-c或者在b-a == d-c时a < c,则区间 [a,b] 比 [c,d] 小。示例 1:输入:nums = [[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出:[20,24]解释:列表 1:[4, 10, 15, 24, 26],24 在区间 [20,24] 中。列表 2...
2021-08-12 14:45:41 213
原创 Leetcode347之前K个高频元素
题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的进阶:你所设
2021-08-08 17:37:00 226
原创 Leetcode-479之最大回文数乘积
题目:你需要找到由两个 n 位数的乘积组成的最大回文数。由于结果会很大,你只需返回最大回文数 mod 1337得到的结果。示例:输入: 2输出: 987解释: 99 x 91 = 9009, 9009 % 1337 = 987说明:n 的取值范围为[1,8]。代码:class Solution { int base=1337;public: int largestPalindrome(int n) { if (n==1) .
2021-08-06 01:32:05 184
原创 Leetcode之最长等差数列
题目:给定一个整数数组A,返回 A中最长等差子序列的长度。回想一下,A的子序列是列表A[i_1], A[i_2], ..., A[i_k] 其中0 <= i_1 < i_2 < ... < i_k <= A.length - 1。并且如果B[i+1] - B[i](0 <= i < B.length - 1) 的值都相同,那么序列B是等差的。示例 1:输入:[3,6,9,12]输出:4解释: 整个数组是公差为 3 的等...
2021-08-03 23:55:41 1753 1
原创 拼多多笔试7.25 第四题 数字组合最大乘积
题目:给定数字0-9的个数,求出该所有数字如何组合得到的乘积最大:例如:0 4 0 0 0 0 0 0 0 0:输出:121(解释:因为有4个1,最大组成 11 * 11 = 121)例如:2 3 0 1 0 0 0 0 0 0:输出:34100(解释:1个3,2个0,三个1 最大组成3100 * 11 = 34100)代码:...
2021-07-27 23:48:45 497
原创 拼多多笔试题7.25 第三题 无限集合
题目:无限集合:该集合初始化含有一个元素A,B,C对该集合中的任意数X,有X + B 属于该元素对该集合中的任意数X,有X * C 属于该元素给出N行,每一行分别是数字 A,B,C,Q判断Q是否属于该集合。属于输出1,不属于输出0;譬如: 1 2 3 5 : 1(因为5 = (3+2))3 3 3 7 : 0 (元素集合为:3 3 3 6 9 18 12 27.。。。。)代码:#include<vector>#include<io...
2021-07-27 23:16:44 209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人