自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 80.中位数

题目:给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。样例:给出数组[4, 5, 1, 2, 3], 返回 3给出数组[7, 9, 4, 5],返回 5代码:class Solution {public: /** * @param nums: A li

2017-06-15 17:21:09 238

原创 156.合并区间

题目:给出若干闭合区间,合并所有重叠的部分。样例:给出的区间列表 => 合并后的区间列表:[ [ [1, 3], [1, 6], [2, 6], => [8, 10], [8, 10], [15, 18] [15, 18]

2017-06-15 17:08:12 237

原创 464.整数排序 II

题目:给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。样例:给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。代码:class Solution {public: /** * @param A an integer array *

2017-06-08 17:12:29 269

原创 547.两数组的交

题目:返回两个数组的交样例:nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].代码:class Solution {public: /** * @param nums1 an integer array * @param nums2 an integer array * @r

2017-06-08 16:59:29 189

原创 548.两数组的交II

题目:计算两个数组的交样例:nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].代码:class Solution {public: /** * @param nums1 an integer array * @param nums2 an integer array

2017-06-01 17:28:05 221

原创 463.整数排序

题目:给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。样例:对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。代码:class Solution {public: /** * @param A an integer array * @retu

2017-06-01 17:05:52 148

原创 138.子数组之和

题目:给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置样例:给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].代码:class Solution {public: /** * @param nums: A list of integers * @return

2017-05-21 23:35:35 205

原创 56.两数之和

题目:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。样例:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].代码:

2017-05-21 23:22:57 142

原创 661.Convert BST to Greater Tree

题目:Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.

2017-05-11 17:33:35 141

原创 85.在二叉查找树中插入节点

题目:给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。样例:给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的: 2 2 / \ / \1 4 --> 1 4 / / \ 3

2017-05-11 17:16:54 177

原创 177.把排序数组转换为高度最小的二叉搜索树

题目:给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。样例给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \1 3 5 7代码:class Solution {public: /** * @param A: A sorted (incr

2017-04-23 16:26:15 222

原创 245.子树

题目:有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。样例:下面的例子中 T2 是 T1 的子树: 1 3 / \ / T1 = 2 3 T2 = 4 / 4下面的例子

2017-04-21 22:40:54 297

原创 453.将二叉树拆成链表

题目:将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。样例: 1 \ 1 2 / \ \ 2 5 => 3 / \ \ \ 3 4

2017-04-21 22:35:02 223

原创 480.二叉树的所有路径

题目:给一棵二叉树,找出从根节点到叶子节点的所有路径。样例:给出下面这棵二叉树: 1 / \2 3 \ 5所有根到叶子的路径为:[ "1->2->5", "1->3"]代码:class Solution {public: /** * @param root the root

2017-04-21 22:24:34 169

原创 469.等价二叉树

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

2017-04-21 22:20:01 171

原创 175.翻转二叉树

题目:翻转一棵二叉树样例: 1 1 / \ / \2 3 => 3 2 / \ 4 4代码:class Solution {public: /** * @param root: a TreeNode, the root of the binary tree

2017-04-21 22:15:53 141

原创 375.克隆二叉树

题目:深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 。样例:给定一个二叉树: 1 / \ 2 3 / \4 5返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \4 5代码:class Solution {public:

2017-04-21 17:35:11 175

原创 155.二叉树的最小深度

题目:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。样例:给出一棵如下的二叉树:        1     /     \    2       3          /    \        4      5  这个二叉树的最小深度为 2代码:class Solution {publi

2017-04-21 17:33:04 215

原创 97.二叉树的最大深度

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例:给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.代码:class Solution {public: /** * @param root: The root of binary

2017-04-21 17:29:15 135

原创 69.二叉树的层次遍历

题目:给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)样例:给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7返回他的分层遍历结果:[ [3], [9,20], [15,7]]代码:class Solution { /** * @param root: T

2017-04-21 16:38:50 195

原创 68.二叉树的后序遍历

题目:给出一棵二叉树,返回其节点值的后序遍历。样例:给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]代码:class Solution { /** * @param root: The root of binary tree. * @return: Postorder i

2017-04-21 15:52:06 140

原创 67.二叉树的中序遍历

题目:给出一棵二叉树,返回其中序遍历。样例:给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].代码:class Solution { /** * @param root: The root of binary tree. * @return: Inorder in vec

2017-04-21 15:49:11 120

原创 66.二叉树的前序遍历

题目:给出一棵二叉树,返回其节点值的前序遍历。样例:给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3]代码:class Solution {public: /** * @param root: The root of binary tree. * @retur

2017-04-21 15:46:39 215

原创 【数据结构】LintCode链表专题总结

作业完成情况:(不知道是不是网址的问题,我做了11个题,但是提交记录里并不全,还请老师见谅。)总结:链表这一章的知识点并不是很多。通过做这11道题可以发现,基本上都是从基础知识上出发的,链表的结构在这些题中尤为重要。除了链表的结构,第二个就是指针的移动和赋值,指针在链表中的重要程度不用多说。在做过这11道题后,我觉得链表这一部分的东西还是很有意思

2017-03-31 15:05:26 177

原创 作业11.167:链表求和

题目:链表求和样例:给出两个链表3->1->5->null和5->9->2->null。返回8->0->8->null。思路:首先写出两个链表中有空链表的情况。然后当两个链表都不为空时,相同位置的节点数相加,大于等于10时,对10求余,向后进一位,后一位加1。代码:class Solution {public: /** * @para

2017-03-31 14:53:53 183

原创 作业10.173:链表插入排序

题目:链表插入排序样例:Given 1->3->2->0->null,return 0->1->2->3->null。思路:设置一个新链表,从原始链表中逐一进行判断插入到新链表中。代码:class Solution {public: /** * @param head: The first node of linked list.

2017-03-30 16:41:24 349

原创 作业9.35:翻转链表

题目:翻转链表样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。思路:设置两个新的指针,然后通过三个指针的轮转,完成翻转。代码:class Solution {public:    /**     * @param head: The first node of linked list.     *

2017-03-30 13:35:13 233

原创 作业8.96:链表划分

题目:链表划分样例:给定1->4->3->2->5->2->null,并且x=3。返回1->2->2->4->3->5->null。思路:设置两个新链表small和big,遍历原始链表,小于x的元素放在small里,大于x的元素放在big里,然后big连在small后面返回。代码:class Solution {public:    /**

2017-03-30 13:10:34 276

原创 作业7.165:合并两个排序链表

题目:合并两个排序链表样例:给出1->3->8->11->15->null和2->null,返回1->2->3->8->11->15->null。思路:首先排除两个链表都为空的情况,然后如果有一条链表为空,则返回另外那条。设置一条新链表,如果两条链表都不为空,逐个比较大小,然后放在新链表中。代码:class Solution {public:

2017-03-30 12:40:24 138

原创 作业6.174:删除链表中倒数第n个节点

题目:删除链表中倒数第n个节点样例:给出链表1->2->3->4->5->null和n=2。删除倒数第二个节点之后,这个链表将变成1->2->3->5->null。思路:先设置一个计数器,把链表的长度计算出来,然后找到需要删除的节点的前一个节点,使它直接跳过需要删除的节点指向下一个就可以了。代码:class Solution {public:

2017-03-28 18:00:07 136

原创 作业5.174:链表中倒数第n个节点

题目:链表倒数第n个节点样例:给出链表3->2->1->5->null和n=2,返回倒数第二个节点的值1。思路:首先排除空链表的情况,然后设定指针p,设定一个计数器count,先计算这个链表的节点数,如果节点数等于所求值n,返回第一个节点,否则,使指针p一直遍历到count-n+1的位置,即为所求节点。代码:class Solution {public:

2017-03-27 22:04:28 328

原创 作业4.451:两两交换链表中的节点

题目:两两交换链表中的节点样例:给出1->2->3->4,你应该返回的是2->1->4->3。思路:首先排除空链表和只有一个节点的链表。然后设定一个temp,两两交换节点,然后再令指针指向后一个的next,以免重复操作。代码:class Solution {public:    /**     * @param head a ListNode

2017-03-27 21:10:10 207

原创 作业3.372:在O(1)时间复杂度删除链表节点

题目:在O(1)时间复杂度删除链表节点样例:给定1->2->3->4,和节点3,删除3之后,链表应该变为1->2->4。思路:将要删除的节点的下一个节点的属性复制到要删除的节点上,会出现两个属性完全相同的节点,然后把下一个节点删除即可。代码:class Solution {public:    /**     * @param node: a n

2017-03-26 20:05:16 185

原创 作业2.112:删除排序链表中的重复元素

题目:删除排序链表中的重复元素样例:给出1->1->2->null,返回1->2->null。            给出1->1->2->3->3->null,返回1->2->3->null。思路:在排序链表中,除去空链表和链表长度为1的两种情况。设定两个指针P和Q,Q赋值为头节点,P赋值为Q的后继。当Q与P值相同时,做删除操作,使Q指向P的后继,P赋值为Q的后继,也

2017-03-24 22:19:01 240

原创 作业1.452:删除链表中的元素

题目:删除链表中的元素样例:给出链表1->2->3->3->4->5->3,和val=3,你需要返回删除3之后的链表:1->2->4->5->。思路:除去空链表的情况,从头节点开始遍历,当遇到值为val的节点时,使当前节点的前驱节点直接指向当前节点的后继节点,这样就完成了对值为val的节点的删除,然后返回修改后的链表。代码:class Solution {

2017-03-24 21:59:51 151

空空如也

空空如也

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

TA关注的人

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