自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序总结

总结:排序中的题目和之前的题目相比较简单,都是很直接的题目,比较易懂,也比较好想,程序也比较简单。

2017-06-09 20:27:36 145

原创 中位数

1.问题描述给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。样例给出数组[4, 5, 1, 2, 3], 返回 3给出数组[7, 9, 4, 5],返回 52.解题思路先用sort进行快速排序,然后判断长度的奇偶性,找出中位数。3.代码实现class Solution

2017-06-08 20:07:31 267

原创 两数组的交

1.问题描述返回两个数组的交 注意事项Each element in the result must be unique.The result can be in any order.样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].2.解题思路3.代码实现class Sol

2017-06-08 20:04:09 135

原创 两数组的交ll

1.问题描述计算两个数组的交 注意事项每个元素出现次数得和在数组里一样答案可以以任意顺序给出样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].2.解题思路3.代码实现class Solution {public:    /**     * @param

2017-06-08 20:02:57 176

原创 合并区间

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

2017-06-08 19:58:03 398

原创 整数排序II

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

2017-06-08 19:54:05 225

原创 两数之和

1.问题描述给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。 注意事项你可以假设只有一组答案。样例给出 numbers = [2, 7, 11, 15], target

2017-06-08 17:59:32 144

原创 整数排序

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

2017-06-08 17:53:46 205

原创 Convert BST to Greater Tree

1.问题描述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 BS

2017-05-18 17:05:50 124

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

1.问题描述给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。 注意事项You can assume there is no duplicate values in this tree + node.样例给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的: 2

2017-05-11 17:19:39 303

原创 二叉树总结

二叉树的基本思想是递归思想的调用,还有全局变量和局部变量的运用

2017-04-21 18:28:07 122

原创 二叉树的路径和

1.问题描述给定一个二叉树,找出所有路径中各节点相加总和等于给定目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。样例给定一个二叉树,和 目标值 = 5: 1 / \ 2 4 / \ 2 3返回:[ [1, 2, 2], [1, 4]]2.解题思路将头结点的左右子树保存在不同的向

2017-04-21 17:39:03 362

原创 二叉树的所有路径

1.问题描述给一棵二叉树,找出从根节点到叶子节点的所有路径。样例给出下面这棵二叉树: 1 / \2 3 \ 5所有根到叶子的路径为:[ "1->2->5", "1->3"]2.解题思路3.代码实现/** * Definition of TreeNode: * class TreeNode {

2017-04-21 16:40:12 425

原创 把排序数组换成高度最小的二叉搜索树

1.问题描述给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 注意事项There may exist multiple valid solutions, return any of them.样例给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \1

2017-04-20 22:19:28 207

原创 将二叉树拆成链表

1.问题描述将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的right 指针,来表示链表中的 next 指针。 注意事项不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。样例 1 \ 1 2 / \

2017-04-20 22:12:06 196

原创 二叉树的层序遍历

1.问题描述啊2.解题思路3.代码实现4.感想

2017-04-20 22:05:22 151

原创 子树

1.问题描述有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 注意事项若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。样例下面的例子中 T2 是 T1 的子树

2017-04-20 21:58:40 144

原创 二叉树的最大节点

1.问题描述在二叉树中寻找值最大的节点并返回。样例给出如下一棵二叉树: 1 / \ -5 2 / \ / \0 3 -4 -5 返回值为 3 的节点。2.解题思路3.代码实现class Solution {public:    /**     * @param root the root

2017-04-17 21:21:03 312

原创 等价二叉树

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

2017-04-17 21:15:33 189

原创 克隆二叉树

1.问题描述深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 。样例给定一个二叉树: 1 / \ 2 3 / \4 5返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \4 52.解题思路3.代码实现/** * Definition of T

2017-04-17 21:09:38 118

原创 二叉树的后序遍历

1.问题描述给出一棵二叉树,返回其节点值的后序遍历。样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]2.解题思路3.代码实现 /** * Definition of TreeNode: * class TreeNode { * public: *     int

2017-04-17 21:06:19 147

原创 二叉树的中序遍历

1.问题描述给出一棵二叉树,返回其中序遍历。样例给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].2.解题思路3.代码实现/** * Definition of TreeNode: * class TreeNode { * public: *     int val;

2017-04-17 21:02:55 120

原创 二叉树的前序遍历

1.问题描述给出一棵二叉树,返回其节点值的前序遍历。样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3].2.解题思路3.代码实现/** * Definition of TreeNode: * class TreeNode { * public: *     in

2017-04-17 20:58:51 111

原创 翻转二叉树

1.问题描述翻转一棵二叉树样例 1 1 / \ / \2 3 => 3 2 / \ 4 42.解题思路3.代码实现/** * Definition of TreeNode: * class TreeNode { * public: *     int val

2017-04-17 20:51:43 105

原创 二叉树的最小深度

1.问题描述给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。样例给出一棵如下的二叉树:        1     /     \    2       3          /    \        4      5  这个二叉树的最小深度为 22.解题思路3.代码实现/** * Def

2017-04-17 20:43:52 134

原创 二叉树的最大深度

1.问题描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.2.解题思路如果二叉树为空,则深度为0;如果不为空,运用递归,分别求其左子树和右子树的深度,取最大的再加1,因为根节点深度是1,要加进去。3

2017-04-06 21:26:58 144

原创 链表总结

提交记录:总结感想:在整个做题的过程中,遇到的最多的问题就是最后节点和链表的返回,关键要看对头结点的存储,而且在整个算法的编写过程中要符合逻辑,注意对每个节点的操作,考虑所有可能出现的情况,理清题目的要求。有时候一个题目按正常思路写出来可能会导致复杂度过大,所以要思考其他的方法,这就是算法。整个程序的核心就是算法的思考,然后用编程语言描述出来。

2017-03-30 23:29:47 145

原创 反转链表

1.问题描述翻转一个链表样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null2.解题思路3.代码实现/** * Definition of ListNode *  * class ListNode { * public: *     int val; *     ListNode *next;

2017-03-30 23:20:49 110

原创 链表插入排序

1.问题描述用插入排序对链表排序样例Given 1->3->2->0->null, return 0->1->2->3->null2.解题思路3.代码实现/** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *next

2017-03-30 23:12:05 134

原创 链表划分

1.问题描述给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。样例给定链表 1->4->3->2->5->2->null,并且 x=3返回 1->2->2->4->3->5->null2.解题思路3.代码实现/** * Definition of ListNode *

2017-03-30 22:58:58 189

原创 合并两个排序链表

1.问题描述将两个排序链表合并为一个新的排序链表样例给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。2.解题思路3.代码实现/** * Definition of ListNode * class ListNode { * public: *     int va

2017-03-30 22:36:00 127

原创 删除排序链表中的重复元素

1.问题描述给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null2.解题思路3.代码实现/** * Definition of ListNode * class ListNode { * publi

2017-03-30 22:26:13 152

原创 删除链表中倒数第n个节点

1.问题描述给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 注意事项链表中的节点个数大于等于n样例给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.2.解题思路3.代码实现/** * Definition of

2017-03-30 22:17:10 134

原创 链表倒数第n个节点

1.问题描述找到单链表倒数第n个节点,保证链表中节点的最少数量为n。样例给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.2.解题思路3.代码实现/** * Definition of ListNode * class ListNode { * public: *     int val; *     Li

2017-03-30 21:57:12 149

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

1.问题描述给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。样例给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。2.解题思路3.代码实现/** * Definition of ListNode * class ListNode { * public: *

2017-03-30 17:31:12 160

原创 两两交换链表中的节点

1.问题描述给一个链表,两两交换其中的节点,然后返回交换后的链表。样例给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。2.解题思路3.代码实现/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNod

2017-03-30 16:29:23 122

原创 删除链表中的元素

1.问题描述删除链表中等于给定值val的所有节点。样例给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。2.解题思路3.代码实现/** * Definition for singly-linked list. * struct ListNode { *

2017-03-29 22:36:38 165

原创 链表求和

1.问题描述你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null2.解题思路两个链表相加后,进位不为零,在下次相加时要加上进位。如果两个链表长

2017-03-29 21:05:53 185

空空如也

空空如也

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

TA关注的人

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