- 博客(43)
- 收藏
- 关注
原创 【填坑笔记】libxml2.so.2: ELF load command past end of file
首先给出几个好网页:网易开源镜像站的CentOS镜像(查看CentOS版本的命令:cat /etc/redhat-release):mirrors.163.com/centos/ CentOS的yum换阿里源:https://www.cnblogs.com/wxinyu/p/10517146.html rpm的使用:https://www.cnblogs.com/Lucky-LGX/p/9...
2020-01-03 15:26:29
8917
原创 【LeetCode】156. Binary Tree Upside Down
解法: 在每个节点p,使节点p的左子树根节点为该节点右兄弟节点,节点p的右子树根节点为该节点的父节点。即可。类似反转链表。Python源码:Runtime:28 ms, faster than5.57%ofPythononline submissions forBinary Tree Upside Down.Memory Usage:11.8 MB, less ...
2019-09-29 15:19:18
206
1
原创 【LeetCode】109. Convert Sorted List to Binary Search Tree
将list改为链表后,无法在时间内完成对元素的读写。两种解法:1. 暴力法 按照把列表转换为BST的方法,递归实现,每次遍历一般的列表长度找到中间元素,则时间复杂度为,n次遍历,遍历平均长度为,空间复杂度为递归栈所需的。2. 自底向上递归法。不采用暴力法中自顶向下生成树的方法,而自底向上生成。每次在自顶向下的方法中受到阻碍时都应尝试一下自低向上方法。但总体来说,自顶向下方法应...
2019-09-28 21:58:30
229
原创 【LeetCode】124. Binary Tree Maximum Path Sum
解法: 同我的心路,任何时候二叉树自顶向下的方法都会涉及很多重复的计算,所以需要经常需要递归来提高效率。自底向上的递归法,在每点可能的最大路径有三种可能: i. max(left subtree) + node ii. max(right subtree) + node iii. max(left subtree) + max(right subtree...
2019-09-26 15:56:46
151
原创 【LeetCode】108. Convert Sorted Array to Balanced Binary Search Tree
解法: 分治法(Divide and conquer),推荐解法和我的心路思路相同,不同之处在于,递归时不传递新的数组,而是传递start和end。更为节省空间开销。Python源码:Runtime:44 ms, faster than99.24%ofPythononline submissions forConvert Sorted Array to Binary ...
2019-09-23 11:55:47
106
原创 【LeetCode】110. Balanced Binary Tree
两种解法:(1)暴力法,自顶向下: 遍历每个节点,递归法求每个节点的左右子树最大深度,并用递归法判断该树是否平衡。时间复杂度,空间复杂度。(2)自底向上递归法: 同我的心路,但代码更简洁一丢丢。Python源码:# Definition for a binary tree node.# class TreeNode(object):# def __...
2019-09-21 21:43:45
133
原创 【LeetCode】111. Minimum Depth of Binary Tree
两种解法:(1)深度优先遍历,与maximum depth of binary tree类似,时间复杂度,递归函数栈结构空间复杂度,但需要考虑两种情况: i. 节点返回时必须为叶子节点,返回深度应该为1。 ii. 为了满足i.实现时要返回非空子树的最小深度。(2)广度优先遍历,优势在于,深度优先遍历会遍历全部子树,这在树非常不平衡时效率比较低。可以采用广度优先遍历来克服...
2019-09-19 10:26:41
153
原创 【LeetCode】104. Maximum Depth of Binary Tree
LeetCode104 传送门解法: 解法采用递归,同我的心路,实现上更简洁。Python源码:Runtime:24 ms, faster than93.91%ofPythononline submissions forMaximum Depth of Binary Tree.Memory Usage:14.6 MB, less than64.20%of...
2019-09-18 13:34:59
112
原创 【LeetCode】98. Validate Binary Search Tree
LeetCode98 传送门BST定义: 二叉树是一种树数据结构,每个节点最多有两个子节点。BST是一种二叉树,但满足以下附加条件:(1)一个节点的左子树只包含节点值小于该节点的节点。(2)一个节点的右子树只包含节点值大于该节点的节点。(3)左子树和右子树也均为BST。三种解法:(1)暴力法 为树中每个节点做判断,其左子树只包含不大于其值的节点,右子树只...
2019-09-17 10:22:26
92
原创 【LeetCode】151. Reverse Words in a String
LeetCode151传送门解法:(1)暴力法。 同我的心路,建立map记录每个节点在链表中的对应位置。时间复杂度,空间复杂度。(2)对map进行改善。 map不记录节点对应位置,将相同位置的原链表节点和新列表节点建立为键值对。时间复杂度,空间复杂度。(3)取消map。 将原链表与新链表节点穿插起来,在返回序列时做一定处理。时间复杂度,空间复杂度。...
2019-09-16 10:03:52
98
原创 【LeetCode】23. Merge k Sorted Lists
Leetcode23 传送门两种解法:1. 调用merge two sorted lists,一次merge两个链表,直到全部merge为一个链表。设每个链表长度为n,共k个链表,时间复度通过两数值的比较次数计算:,空间复杂度为。2. 采用堆数据结构,将所有链表中的最小元素加入有序堆,当一个最小元素被加入结果链表后,将该最小元素所在链表的下一节点值加入该堆,直至堆为空。插入过程最少查找...
2019-09-12 11:02:35
196
原创 【LeetCode】24. Swap Nodes in Pairs
LeetCode24 传送门解法: 推荐解法保存了四个指针,prev,p,q,r,分别代表本组前一个,本组第一个,本组第二个,下一组第一个。效率和可读性都有提升。Python源码:Runtime:12 ms, faster than94.92%ofPythononline submissions forSwap Nodes in Pairs.Memory Us...
2019-09-11 20:18:59
97
原创 【目标检测/分割】FCN CVPR'15
Fully Convolutional Networks for Semantic SegmentationAuthors:Jonathan Long,Evan Shelhamer,Trevor Darrell故事:1. 本文描述CNN可以为定位任务提取特征,引用的目标检测论文为R-CNN、SPP、OverFeat之后,Fast R-CNN。2. 卷积网络已被用于全图分类、...
2019-09-10 13:45:09
235
原创 【LeetCode】2. Add Two Numbers
LeetCode2 传送门解法: 初始化一个dummy_head,一个新的链表curr用于保存结果,逐位遍历两链表节点,将计算结果保存到curr链表中,直到两链表节点均为空。遍历结束后carry非0,则将curr的next指向一个新的值为carry的链表节点。Python源码:# Definition for singly-linked list.# class List...
2019-09-10 09:34:57
105
原创 【LeetCode】21. Merge Two Sorted Lists
LeetCode21 传送门解法: 解法和实现跟心路一样。使用dummy head可以避免处理初始化新链表的头部这一特殊情况,dummy head在其他编程题中也可以得到应用。我的心路: 使用了dummy_head实现,实现效率低于七个月前。Runtime:44 ms, faster than64.21%ofPython3online submission...
2019-09-09 08:55:58
118
原创 【LeetCode】9. Palindrome Number
leetcode9 传送门解法:(1)将数字存入字符串,用两个指针判断回文字符串。(2)翻转字符串。但翻转后的字符串可能会溢出,而对于溢出,各种语言的处理方式不同。(3)动态规划法。循环对比数字两端,若两端相等,敲除两端数字并进入下一次循环;若两端不等,返回False。Python源码:Runtime:56 ms, faster than49.68%ofPython...
2019-09-06 22:13:55
101
原创 【LeetCode】66. Plus One
LEETCode66 传送门解法: 需要向面试官问的问题有,可能有负数吗?数字在digits中是如何存储的,正向还是反向?开头会出现0吗? 实现上推荐的方法比我的方法更直接一些。放在循环中的if判断+return比while中的判断更易读。Python源码:Runtime:20 ms, faster than57.47%ofPythononline sub...
2019-09-06 14:54:46
146
原创 【LeetCode】7. Reverse Integer
LeetCode7 传送门解法: 应该向面试官提问的问题:负数、结尾为0、溢出。Python的负数取余操作和其他语言不同,需要保存一个符号变量。我的心路: 7个月前的解决方法如下,还不错Runtime:20 ms, faster than61.28%ofPythononline submissions forReverse Integer.Memory...
2019-09-05 09:05:57
155
原创 【LeetCode】158. Read N Characters Given Read4 II - Call multiple times
LeetCode158 传送门推荐解法: 设置成员变量offset,长度为4的列表buffer,buffer中的字符串长度bufsize。在调用read时,先利用bufsize和offset判断buffer中是否存在尚未被输出的字符。如果存入buf中,判断buf中存储的字符串长度还未到达n或read4的指针还未来到终点,则循环调用read4将所需长度的字符串加入buf并重复上一个判断...
2019-09-04 10:35:11
336
原创 【LeetCode】157. Read N Characters Given Read4
LeetCode157 传送门解法: 创建新的buf_4,while循环判断结束,两个指针指向子串的首尾位置,将结果依次贴进buf。Python源码:Runtime:20 ms, faster than42.13%ofPythononline submissions forRead N Characters Given Read4.Memory Usage:...
2019-09-03 11:04:27
157
原创 【LeetCode】161. One Edit Distance
LeetCode161 传送门解法: 推荐解法和我的解法看似类似,时间、空间复杂度非常接近,但实则简洁很多。究其原因,推荐方法中采用了分段的思想。这种分段的思想很适合于字符串问题。Python源码:Runtime:24 ms, faster than28.87%ofPythononline submissions forOne Edit Distance.Me...
2019-09-02 20:45:11
161
原创 【LeetCode】1177. Can Make Palindrome from Substring
LeetCode1177 传送门他人解法: 其实思路和我的想法一致——计算子串中出现次数为单数的字符种类的总数m,最小使为回文序列的k必满足:k * 2 >= m - (j - i + 1)。但不同之处在于,“字典”的构建方法。我在若干次time limit exceeds后,想为字符串建立查找表,键为(起始位置,终止位置),值为最小k,然而该方法势必在建表阶段时间复杂度、空间...
2019-09-01 21:53:39
173
原创 【LeetCode】5. Longest Palindromic Substring
LeetCode5 传送门四种解法:(1)Brute Force: 枚举全部子串(是一个排列问题,共种),判断子串是否回文。时间复杂度,空间复杂度。(2)动态规划法,同我的心路。Python源码:我的心路: 到目前为止数组、字符串的题目已经做了大约十道,过程中发现使用效果上:嵌套遍历<字典<指针。因此,设置了左指针和右指针,分别指向以迭代符...
2019-08-31 22:19:33
77
原创 【LeetCode】163. Missing Ranges
LeetCode163 传送门解法: 设置两个指针,i指向数组当前元素,prev指向虚拟的连续range中的元素。初始化prev为lower - 1,i为0。若i位置的数组元素比prev只大1,说明连续range中下一个数字与数组中当前i位置数字相同,进入下一个循环即可,如果不只大1,则说明数组中有当前元素较上一个i位置有不连续,则向output中添加一个字符串。让prev取i的上一...
2019-08-30 10:46:06
118
原创 【LeetCode】159. Longest Substring with At Most Two Distinct Characters
LeetCode159传送门解法:1. Brute Force方法。构建字符串S的所有可能子串,为每个子串,构建一个set,set的大小可以表征子串中字符的类别数。假设字符串长度为n,则子串个数为,时间复杂度为,空间复杂度为。2. 使用三个指针。一个指针k指向遍历字符串的主循环中的字符位置,一个指针j指向子串的上一个不同种类字符位置,一个指针i指向当前合法子串的起始位置。当k位置字符与...
2019-08-29 22:04:36
166
原创 【LeetCode】3. Longest Substring Without Repeating Characters
LeetCode3 传送门两种解法:1. 遍历字符串中每个位置符合需求的子串长度检测到重复字符时,跳转到上一子串中该重复字符位置的下一个作为当前子串起始位置。具体实现时,初始化一个布尔型的数组,每个位置对应字符的ASCII码值,记录是否在子串中出现。初始化i作为子串起始位置,j作为当前子串结束位置。由于i和j无重复赋值,时间复杂度,空间复杂度。2. 与解法1类似,不同之处是把数组改为一...
2019-08-28 11:26:19
97
原创 【LeetCode】65. Valid Number
LeetCode65 传送门解法:1. 要设计好问考官的问题。2. 解法与LeetCode8非常相似,可将问题分为几个组成部分:(1)开头的空格(可有可无)(2)正负号(可有可无)(3)数字(4)e和e后的数字(可有可无)(5)结尾的空格推荐解法比我的方法简洁得多,可读性强,但分数却低了一些。原因是我的方法中“一言不合”就返回False,而推荐解法中是保存标志,...
2019-08-27 21:31:48
114
原创 【LeetCode】8. String to Integer (atoi)
LeetCode8 传送门解法: 从左到右遍历字符串,分三个阶段,先判断空格,再判断正负,再循环乘法和加法判断是否溢出。Python源码: Runtime:36 ms, faster than92.25%ofPython3online submissions forString to Integer (atoi). Memory Usage:13....
2019-08-26 10:36:55
63
原创 【思考】Fast R-CNN的“去SVM化”
好奇的点始于,为什么R-CNN需要采用SVM来提高性能,而不可以直接采用神经网络“自带的”softmax分类器。为什么Fast R-CNN不需要SVM分类器,搭建一个多头输出网络就可以取得较好的效果呢?Fast R-CNN的网络架构 R-CNN的arXiv版本附录中也讨论了使用SVM而不是softmax这一点,实验表明单用softmax会使mAP下降大约五个百分点。作者认为...
2019-08-23 14:30:57
1146
4
原创 【目标检测/分割】Faster R-CNN NIPS'15/CVPR'16
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks作者:Shaoqing Ren,Kaiming He,Ross Girshick,Jian Sun故事: 此前一段时间目标检测的发展得益于候选区域算法和R-CNN方法,且R-CNN的方法在Fast R-CNN等共享计算方...
2019-08-23 10:15:44
603
2
原创 【LeetCode】186. Reverse Words in a String II
LeetCode186 传送门解法:同“我的心路”。class Solution: def reverseWords(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ self.re...
2019-08-23 09:16:26
170
原创 【LeetCode】151. Reverse Words in a String
LeetCode151 传送门一种解法: 容易想到两次遍历的方法。第一次遍历分词,第二次遍历反向拼接单词成为句子。然后可以将两次遍历改进为一次遍历。首先初始化一个空字符串s_rev,初始化指针end为原字符串最后一个位置加一。倒序遍历原字符串s,若s[i]为空格,则赋值end为i。否则,如果i - 1位置为空格,或i为0位置,则令s_rev拼接s[i:j]。但该方法没有使用pytho...
2019-08-22 16:30:47
149
原创 【LeetCode】28. Implement strStr()
LeetCode28 传送门KMP算法是一种改进的字符串匹配算法,由Donald Knuth,Vaughan Pratt,James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。两种解法:1. 字符串匹配的Brute Force算法,时间复杂度,空间复杂度 对于主串s和子串p分别初始化指针i = 0, j = 0,分别代表正在比较的主串和子串位置。...
2019-08-21 20:27:29
80
原创 【LeetCode】125. Valid Palindrome
LeetCode125 传送门解法比较简单: 两个指针,分别从左向右,从右向左遍历字符串,时间复杂度,空间复杂度。Python源码:class Solution: def isPalindrome(self, s: str) -> bool: s = s.lower() left_p = 0 right_p = ...
2019-08-21 09:08:20
74
原创 【目标检测/分割】Fast R-CNN ICCV'15
Fast R-CNN作者:Ross Girshick机构:Microsoft Research故事: 基于CNN的目标检测方法效果好但复杂度高,需要评价多个候选框,并进行精确位置进行改善。 R-CNN存在三个缺陷:训练为多步过程——CNN→SVM→BBR;后两步的训练需要将大量特征保存在硬盘上耗费空间和时间;测试过程慢(47s一张图像)。 SPPnet在2...
2019-08-20 22:16:50
298
原创 【LeetCode】170. Two Sum III - Data structure design
LeetCode170 传送门三种解法:1. 哈希表保存每个加和结果。Add时间复杂度,Find时间复杂度,空间复杂度。2. 二分法有序构建数组,两指针找和,需要考虑不同情况新元素的添加位置。Add时间复杂度,Find时间复杂度,空间复杂度。3. 哈希表构建数组,遍历哈希表找和,需要考虑到重复的元素。Add时间复杂度,Find时间复杂度,空间复杂度。Python源码:cl...
2019-08-20 10:00:30
137
原创 【LeetCode】167. Two Sum II - Input array is sorted
LeetCode 167传送门三种解法:1. Brute Force,时间复杂度,空间复杂度 遍历嵌套遍历,时间复杂度高,且没有利用到列表有序这一有利条件。2. 二分法查找,时间复杂度,空间复杂度 遍历列表元素ele,在未遍历的列表元素中查找是否存在target-ele,查找采用二分查找法。3. 两个指针,时间复杂度,空间复杂度 初始化两个指针,分别指...
2019-08-19 09:35:08
67
原创 【目标检测/分割】R-CNN CVPR'14
Rich feature hierarchies for accurate object detection and semantic segmentation作者:Ross Girshick,Jeff Donahue,Trevor Darrell,Jitendra Malik发表时间:(Submitted on 11 Nov 2013 (v1), last revised 22 O...
2019-08-18 22:17:53
201
原创 【LeetCode】1. Two Sum
LeetCode1. Two Sum两种解法: 1. Brute force ——运行时间,内存开销 遍历列表元素ele,再继续遍历查找列表中是否存在target-ele元素。返回两者的index。由于嵌套了遍历,时间开销比较大。 2. Hash table——运行时间,内存开销 用哈希表能够快速查找的优势解决该问题。先建立空的哈希表,键...
2019-08-18 21:06:28
105
原创 "conda: command not found" Linux中永久设置Anaconda环境变量
1. 命令行中输入 sudo gedit /etc/environment2. 输入你的密码,进入profile文档编辑界面,将你的anaconda的bin所在路径加入(记得和其他路径间用:分开)3. 保存并退出4. 重启即可生效。之后再输入echo $PATH便可查看路径是否已加入PATH中。...
2018-09-07 09:42:44
1475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人