自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【一次过】Lintcode 223. 回文链表

设计一种方式检查一个链表是否为回文链表。样例1->2->1就是一个回文链表。挑战O(n)的时间和O(1)的额外空间。解题思路1:链表比字符串难的地方就在于不能通过坐标来直接访问,而只能从头开始遍历到某个位置。那么根据回文串的特点,我们需要比较对应位置的值是否相等,那么我们首先需要找到链表的中点,这个可以用快慢指针来实现,原理是fast和slow两个指针,每次快...

2018-07-29 18:36:59 176

原创 【一次过】Lintcode 48. 主元素 III

给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。样例给出数组 [3,1,2,3,2,3,3,4,4,4] ,和 k = 3,返回 3挑战要求时间复杂度为O(n),空间复杂度为O(k)解题思路:看到次数相关就用哈希表。class Solution {public: /** * @param nums: A list o...

2018-07-29 15:42:12 228

原创 【两次过】Lintcode 389. 判断数独是否合法

请判定一个数独是否有效。该数独可能只填充了部分数字,其中缺少的数字用.表示。样例The following partially filed sudoku is valid.解题思路:验证数独是否有效,就三个要求:1.数字1-9在每一行最多只能出现一次2.数字1-9在每一列最多只能出现一次3.数字1-9在每一个3*3九宫格内最多只能出现一次出现有次数的题目...

2018-07-29 10:43:25 211

原创 【一次过】Lintcode 78. 最长公共前缀

给k个字符串,求出他们的最长公共前缀(LCP)样例在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A"在"ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC"解题思路1:两两比较得出临时前缀结果,再用这个结果去比较下一个字符串得出又一个前缀结果,直到比较完所有字符串,这个前缀结果即为最终结果。public cla...

2018-07-21 10:04:32 189

原创 实现一个最基本的String类【C++】

题目:实现String类的构造函数、析构函数并重载赋值操作符。解答:class String{public: String(); String(const char *pStr); String(const String &str); String &operator=(const String &str); vi...

2018-07-20 22:22:51 581

原创 【一次过】Lintcode 31. 数组划分

给出一个整数数组nums和一个整数k。划分数组(即移动数组nums中的元素),使得:所有小于k的元素移到左边 所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置i,满足nums[i] 大于等于k。样例给出数组 nums =[3,2,2,1]和 k =2,返回1.挑战使用 O(n) 的时间复杂度在数组上进行划分。解题思路:类似于...

2018-07-20 21:25:16 222

原创 【一次过】Lintcode 49. 字符大小写排序

给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。样例给出"abAcD",一个可能的答案为"acbAD"挑战在原地扫描一遍完成解题思路1:用p遍历整个字符串,当遇到大写字母时,将此字母移动至末尾,当遇到小写字母则继续考察下一个元素。这里xu需要注意的是这个逻辑有点BUG,当遍历至末尾几个元素时,此时所有大写字母均在此处,会造成死循环移动,所以在每次移动大写...

2018-07-20 19:52:50 256

原创 【一次过】Lintcode 822. 相反的顺序存储

给出一个链表,并将链表的值以in reverse order存储到数组中。样例给定1 -> 2 -> 3 -> null,返回[3,2,1]。解题思路:简单,直接看代码。class Solution {public: /** * @param head: the given linked list * @return: the ...

2018-07-20 11:06:42 220

原创 【一次过】Lintcode 792. Kth Prime Number

给出质数n,输出它是第几个质数。样例给出 n = 3,返回 2。解释:[2,3,5],3是第2个质数。给出 n = 11,返回 5。解释:[2,3,5,7,11],11是第五个质数。解题思路:简单,直接看代码。class Solution {public: /** * @param n: the number * @retu...

2018-07-20 11:00:05 152

原创 【一次过】Lintcode 784. 最长公共前缀 II

给出n个字符串,和一个目标串,输出目标串与这n个字符串的最长公共前缀的长度的最大值。样例给出["abcba","acc","abwsf"],target = "abse",return 2。解释:"abse"与"abcba"的最长公共前缀为"ab",长度为2,与"acc"最长公共前缀为"a",长度为1,与&quot

2018-07-20 10:50:14 184

原创 【一次过】Lintcode 1263. 是子序列吗?

给定字符串s和t,判断s是否为t的子序列。你可以认为在s和t中都只包含小写字母。t可能是一个非常长(length ~= 500,000)的字符串,而s是一个较短的字符串(length <= 100)。一个字符串的子序列是在原字符串中删去一些字符(也可以不删除)后,不改变剩余字符的相对位置形成的新字符串(例如,"ace"是"abcde"的子序列而"aec"不是)。样例样例1:...

2018-07-20 09:12:42 131

原创 【一次过】Lintcode 770. 最大数和最小数

给定一个矩阵,返回矩阵中的最大数和最小数样例给定一个矩阵:[ [1,2,3], [4,3,2], [6,4,4]]返回[6,1]解题思路:直接遍历即可。class Solution {public: /** * @param matrix: an input matrix * @return: nums[0]: the m...

2018-07-19 20:45:21 261

原创 【一次过】【优先队列】Lintcode 544. 前K大数

在一个数组中找到前K大的数样例给出[3,10,1000,-99,4,100], k =3.返回[1000, 100, 10]解题思路:看到取前X大(小)数,使用优先队列即可。注意这里使用小根堆,大小始终保持K,不断poll最小的数,最终小根堆会只留下前K大的数由于poll出来的数是由小到大,而题目要求由大到小,所以取数据时记得反取import java.uti...

2018-07-19 10:29:32 268

原创 【一次过】【Comparator】Lintcode 471. 最高频的K个单词

给一个单词列表,求出这个列表中出现频次最高的K个单词。样例给出单词列表:[ "yes", "lint", "code", "yes", "code", "baby", "you", "baby", "chrome", "safari", "lint", "code", "body", "lint", "code"]如果 k =3, 返...

2018-07-19 10:20:06 653 1

原创 【一次过】Lintcode 737. 查找矩阵

给一矩阵, 找到矩阵中每一行都出现的元素. 你可以假设矩阵中只有一个满足条件的元素.样例给一矩阵:[ [2,5,3], [3,2,1], [1,3,5]]返回3解题思路:将矩阵中所有元素用unorder_map<int,int>存储,key为数值,value为频次。最后只要返回频次为矩阵长的数值即可。但是这里有一个小陷阱,如果一行全是这个...

2018-07-18 20:41:02 192

原创 【两次过】Lintcode 95. 验证二叉查找树

给定一个二叉树,判断它是否是合法的二叉查找树(BST)一棵BST定义为:节点的左子树中的值要严格小于该节点的值。 节点的右子树中的值要严格大于该节点的值。 左右子树也必须是二叉查找树。 一个节点的树也是二叉查找树。样例一个例子: 2 / \1 4 / \ 3 5上述这棵二叉树序列化为 {2,1,4,#,#,3,5}.解题思路1:二叉查...

2018-07-18 20:18:22 193

原创 【一次过】Lintcode 1230. 分饼干

假设你是一个了不起的家长,准备给你的孩子们一些饼干吃,但是你只能给每个孩子至多一块饼干。每一块饼干jj都有一个尺寸s_{j}s​j​​;同时每一个孩子ii都有一个贪吃指数g_{i}g​i​​,代表了能使他满足的最小的饼干尺寸。如果s_{j} \geq g_{i}s​j​​≥g​i​​,那么就可以将饼干jj分给孩子ii使他得到满足。你的目标是使最多的孩子得到满足,输出这个最大值。样例样例1:...

2018-07-17 22:13:45 191

原创 【一次过】Lintcode 720. 重排带整数字符串

给一包含大写字母和整数(从 0 到 9)的字符串, 试写一函数返回有序的字母以及数字和.样例给出 str = AC2BEW3, 返回 ABCEW5字母按字母表的顺序排列, 接着是整数的和(2 和 3).解题思路:扫描一遍字符串,将字符部分提取出来然后排序,将数字部分提取出来加法,最后将li两部分合并即可。class Solution {public: /** ...

2018-07-17 19:58:20 190

原创 【一次过】【序列型】Lintcode 111. 爬楼梯

假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?样例比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法返回 3解题思路:动态规划。设dp(n)为爬到第n阶楼梯的方法数目,则递推式为:dp(n) = dp(n-1) + dp(n-2)递推出口:dp(0) = 0 ; dp(1) = 1 ; dp(2) =...

2018-07-17 19:12:59 172

原创 【一次过】Lintcode 71. 二叉树的锯齿形层次遍历

给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行)样例给出一棵二叉树{3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7返回其锯齿形的层次遍历为:[ [3], [20,9], [15,7]]解题思路:与Lintcode 69:Binary T...

2018-07-17 10:01:34 133

原创 【一次过】Lintcode 684. 缺少的字符串

给出两个字符串,你需要找到缺少的字符串样例给一个字符串 str1 =This is an example, 给出另一个字符串 str2 =is example返回["This", "an"]解题思路:先将两字符串分别切割为一个一个单词放入数组中,然后将str2单词再放入哈希表中方便查找,最后遍历str1中的单词,如果在哈希表中没找到则放进res中。注意题目中查找缺少的字...

2018-07-16 22:45:15 219

原创 【一次过】Lintcode 70. 二叉树的层次遍历 II

 给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7按照从下往上的层次遍历为:[ [15,7], [9,20], [3]]解题思路:    与Lintcod...

2018-07-16 10:45:36 294

原创 【两次过】Lintcode 480. 二叉树的所有路径

480.二叉树的所有路径给一棵二叉树,找出从根节点到叶子节点的所有路径。样例给出下面这棵二叉树: 1 / \2 3 \ 5所有根到叶子的路径为:[ "1->2->5", "1->3"]解题思路1: 分治法。注意需要额外考虑叶子节点的问题,否则叶子节点将会被遗漏,导致输出为空。/** *...

2018-07-16 10:11:59 159

原创 【两次过】Lintcode 1254. 左叶子的和

找出给定二叉树中,所有左叶子的值之和。样例 3 / \ 9 20 / \ 15 7这棵二叉树中,有两个左叶子结点,它们的值分别为9和15。因此返回24。解题思路: 递归。如何判断一个节点是左叶子节点(解决这个问题的核心):对于一个节点root,root.left不为空,且 root.left.left、root.left.ri...

2018-07-15 09:56:54 133

原创 【多次过】Lintcode 376. 二叉树的路径和

 给定一个二叉树,所有找出路径中各节点相加总和等于给定  目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。样例给定一个二叉树,和  目标值 = 5: 1 / \ 2 4 / \ 2 3返回:[ [1, 2, 2], [1, 4]]解题思路:    此题同样有个与Lintcode 155.二叉树的最...

2018-07-15 09:39:30 260

原创 【两次过】Lintcode 93. 平衡二叉树

给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。样例给出二叉树 A={3,9,20,#,#,15,7}, B={3,#,20,15,7}A) 3 B) 3 / \ \ 9 20 20...

2018-07-15 08:47:58 187

原创 【一次过】Lincode 424. 逆波兰表达式求值

求逆波兰表达式的值。在逆波兰表达法中,其有效的运算符号包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰计数表达。样例["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6解题思路:...

2018-07-14 22:00:19 108

原创 图像聚焦区域检测【Opencv3 + VS2017】

        有效的图像清晰度评价函数是采用数字图像处理技术实现图像聚焦区域检测的关键,针对此类问题,首先使用灰度直方图均衡化和中值滤波对图像进行预处理,然后采用基于Sobel算子的TenenGrad评价函数在感兴趣区域ROI内进行检测评分(参考OpenCV 图像清晰度评价),其中ROI得分最高的区域即为聚焦区域。通过20张图片的处理,对其聚焦性能进行了测试,结果表明该算法可行。        ...

2018-07-14 10:29:42 3569

原创 【一次过】Lintcode 1360. 对称树

给定二叉树,返回它是否是自身的镜像(即这棵二叉树是否对称)。样例样例1输入: {1,2,2,3,4,4,3}输出: true解释: 1 / \ 2 2 / \ / \3 4 4 3{1,2,2,3,4,4,3}这棵二叉树是对称的样例2输入: {1,2,2,#,3,#,3}输出: false解释: 1 / \ 2 ...

2018-07-14 10:17:44 177

原创 【一次过】Lintcode 469. 等价二叉树

检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1 1 ...

2018-07-13 20:32:14 159

原创 【一次过】Lintcode 175. 翻转二叉树

翻转一棵二叉树样例 1 1 / \ / \2 3 => 3 2 / \ 4 4挑战递归固然可行,能否写个非递归的?解题思路1: 递归。先将左孩子为根的子树翻转,再将右孩子为根的子树翻转,最后将该节点的左右子树翻转即可。/** * Definition of TreeNod...

2018-07-13 20:18:31 178

原创 【一次过】Lintcode 155. 二叉树的最小深度

给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2解题思路: 这道题与Lintcode 97:Maximum Depth of ...

2018-07-13 20:10:15 176

原创 【两次过】Lintcode 99. 重排链表

给定一个单链表L: L 0→ L 1→...→ L n-1→ L n,重新排列后为:L 0→ L n→ L 1→ L n-1→ L 2→ L n-2→......必须在不改变节点值的情况下进行原地操作。样例给出链表 1->2->3->4->null,重新排列后为1->4->2->3->null。挑战你可以在 不改变...

2018-07-13 11:01:08 151

原创 【两次过】Lintcode 170. 旋转链表

给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数样例给出链表1->2->3->4->5->null和k=2返回4->5->1->2->3->null解题思路: 双指针法。 需要注意旋转操作,需要取k除链表长度的余数。/** * Definition for Li...

2018-07-12 21:50:23 177

原创 【一次过】Lintcode 113. 删除排序链表中的重复数字 II

给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。样例给出1->2->3->3->4->4->5->null,返回1->2->5->null给出1->1->1->2->3->null,返回2->3->null解题思路: 照例新建一个dummy节点作...

2018-07-11 09:08:35 158

原创 【一次过】Lintcode 221. 链表求和 II

假定用一个链表表示两个数,其中每个节点仅包含一个数字。假设这两个数的数字顺序排列,请设计一种方法将两个数相加,并将其结果表现为链表的形式。样例给出6->1->7+2->9->5。即,617 + 295。返回9->1->2。即,912。解题思路: 可以先翻转链表得到倒序链表,然后按照Lintcode 167:Add Two...

2018-07-10 09:55:43 215

原创 【一次过】Lintcode 1292. 奇偶链表

给定单链表,将所有奇数节点连接在一起,然后将偶数节点连接在一起。 请注意,这里我们讨论的是节点编号,而不是节点中的值。样例样例1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL样例2:输入: 2->1->null输出: 2->1->null...

2018-07-10 09:10:32 155

原创 【一次过】Lintcode 36. 翻转链表 II

翻转链表中第米个节点到第Ñ个节点的部分样例给出链表1-> 2-> 3-> 4-> 5-> null,m = 2和n = 4,返回1-> 4-> 3-> 2-> 5-> null挑战在原地一次翻转完成解题思路: 在[m,n]区间翻转的操作与Lintcode 35:Reverse Linked List相同...

2018-07-09 10:53:31 283

原创 【两次过】Lintcode 976. 4数和 II

给出 A, B, C, D 四个整数列表,计算有多少的tuple(i, j, k, l)满足A[i] + B[j] + C[k] + D[l]为 0。为了简化问题,A, B, C, D 具有相同的长度,且长度N满足 0 ≤ N ≤ 500。所有的整数都在范围(-2^28, 2^28 - 1)内以及保证结果最多为2^31 - 1。样例例1:输入:A = [ 1, 2]B...

2018-07-08 09:59:03 186

原创 【一次过】Lintcode 828. 字模式

给定一个模式和一个字符串str,查找str是否遵循相同的模式。这里遵循的意思是一个完整的匹配,在一个字母的模式和一个非空的单词str之间有一个双向连接的模式对应。样例给定模式="abba", str ="dog cat cat dog",返回true。给定模式="abba", str ="dog cat cat fish",返回false。给定模式="aaaa", st...

2018-07-06 15:57:45 315

空空如也

空空如也

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

TA关注的人

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