自定义博客皮肤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-08 18:28:56 216

原创 整数排序||

一、问题描述      给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。样例给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。二、解题思路     运用sort函数就能快速解决问题。三、我的代码class Solution {public:    /

2017-06-08 17:34:18 176

原创 整数排序

一、问题描述      给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。样例对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。二、解题思路      运用冒泡排序,若前一个大于后一个,则交换。三、我的代码class Solution {public:    /**

2017-06-08 17:19:46 184

原创 中位数

一、问题描述给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。样例给出数组[4, 5, 1, 2, 3], 返回 3给出数组[7, 9, 4, 5],返回 5二、解题思路         首先对nums里的元素进行排序,若n是奇数,因为vector数组下标从0开始,所以要返回的是n

2017-06-08 16:52:06 318

原创 合并区间

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

2017-06-01 17:24:48 240

原创 两数组的交||

一、问题描述计算两个数组的交 注意事项每个元素出现次数得和在数组里一样答案可以以任意顺序给出样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].二、解题思路          先对数组进行排序,然后设置循环语句遍历这两数组,然后当nums1和nums2中数值相同时,插入到新建的向量容

2017-05-21 22:58:13 134

原创 两数之和

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

2017-05-19 21:48:21 123

原创 两数组的交

一、问题描述   返回两个数组的交 注意事项Each element in the result must be unique.The result can be in any order.样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].二、解题思路     运用set_interse

2017-05-18 17:31:45 159

原创 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 k

2017-05-11 18:01:28 160

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

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

2017-05-11 17:39:12 134

原创 二叉树总结

二叉树总结      首先这一章我们学习到的就是四种遍历方法,前序遍历,中序遍历,后序遍历以及层次遍历,在这次的作业中也是用处很大,此外就是我们学习到的递归思想,大概每道题都要用到这种思想,一开始对递归还是懵懵懂懂的感觉,做了这么多题,加深了我对递归的了解,还有做题过程中用到以前所学习到的函数,比如bool函数,swap函数等,也是对以前的知识的一个复习了,还有对如何把整数型转换为字符型有一个

2017-04-21 18:45:46 116

原创 二叉树的最大节点

一、问题描述    在二叉树中寻找值最大的节点并返回。样例给出如下一棵二叉树: 1 / \ -5 2 / \ / \0 3 -4 -5 返回值为 3 的节点。二、解题思路   定义一个很小的数和一个指针,然后运用前序遍历,将遍历到的节点值依次与a(当前的最大节点值)进行比较,然后再找出最大值赋值给a,依次进行

2017-04-21 18:29:20 339

原创 子树

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

2017-04-21 18:01:59 439

原创 将二叉树拆成链表

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

2017-04-20 22:32:39 154

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

一、问题描述       给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。样例给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \1 3 5 7二、解题思路       运用二分法以及递归的思想,一开始l为最左边的数值,r为最右边的数值,然后进行二分,找到中

2017-04-20 16:53:54 202

原创 二叉树的所有路径

一、问题描述    给一棵二叉树,找出从根节点到叶子节点的所有路径。样例给出下面这棵二叉树: 1 / \2 3 \ 5所有根到叶子的路径为:[ "1->2->5", "1->3"]二、解题思路           运用递归的思想查找二叉树的所有路径,定义一个向量用来存储路径,然后运用前序遍历二叉树,返回查找的的路

2017-04-17 21:56:32 196

原创 二叉树的路径和

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

2017-04-17 11:12:05 1616

原创 翻转二叉树

一、问题描述   翻转一棵二叉树样例 1 1 / \ / \2 3 => 3 2 / \ 4 4二、解题思路         运用递归算法,前序遍历此二叉树的左右子树,然后运用swap函数交换左右子树即可。三、我的代码class Solution {public: 

2017-04-13 16:24:20 151

原创 等价二叉树

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

2017-04-12 12:19:23 143

原创 克隆二叉树ke

一、问题描述   深度复制一个二叉树。   给定一个二叉树,返回一个他的 克隆品 。样例给定一个二叉树: 1 / \ 2 3 / \4 5返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \4 5二、解题思路    运用递归算法,然后前序遍历要克隆的二叉树的节点并赋值给

2017-04-12 11:48:25 241

原创 二叉树的最小深度

一、问题描述   给定一个二叉树,找出其最小深度。   二叉树的最小深度为根节点到最近叶子节点的距离。样例给出一棵如下的二叉树:        1     /     \    2       3          /    \        4      5  这个二叉树的最小深度为 2二、解题思路    首先若根为空,则输出0,若左子

2017-04-12 11:12:38 198

原创 二叉树的最大深度

一、问题描述     给定一个二叉树,找出其最大深度。     二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.二、解题思路    运用递归的思想求出左右子树的最大高度,然后进行比较,返回较大值。三、我的代码class Solution {

2017-04-12 10:51:43 155

原创 二叉树的层次遍历

一、问题描述给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)样例给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7返回他的分层遍历结果:[ [3], [9,20], [15,7]]二、解题思路       定义两个vector容器,一个存储每一层的节点(r),另一个

2017-04-10 22:46:19 142

原创 二叉树的后序遍历

一、问题描述   给出一棵二叉树,返回其节点值的后序遍历。样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]二、解题思路     定义一个vector容器来存储后序遍历的节点,运用后序遍历的方式即先左子树后右子树再根的方式进行依次遍历存储即可。三、我的代码class Solut

2017-04-10 21:44:38 126

原创 二叉树的前序遍历

一、问题描述  给出一棵二叉树,返回其节点值的前序遍历。样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3].二、解题思路       定义一个向量容器用来存储前序遍历的节点,然后根据前序遍历的方式即先存储根节点,再左子树,再右子树的方式依次遍历存储。三、我的代码class Soluti

2017-04-10 21:30:25 128

原创 二叉树的中序遍历

一、问题描述    给出一棵二叉树,返回其中序遍历样例给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].二、解题思路         首先定义一个向量用来储存中序遍历的节点值,按照中序遍历的方式即先访问左子树再访问根然后访问右子树进行遍历然后存储即可。三、我的代码class Solu

2017-04-10 20:53:20 225

原创 链表总结

做了这些题中好多都是链表删除其中的节点,删除其中一个节点,即让指针指向要删除的元素的下一个元素即可,思想很简单,然后就是对于不同的题目再添加新的思路,比如删除倒数第n个节点就要先找到倒数第n个节点,然后对于合并两个排序链表,就是要根据大小顺序依次向新生成的链表中添加元素,插入排序也是根据大小顺序依次遍历链表然后插入元素,翻转链表则相当于一个倒序问题,做了这些题后感觉自己收获了好多,课本上的很多东西

2017-03-31 14:01:31 188

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

一、问题描述    给一个链表,两两交换其中的节点,然后返回交换后的链表。        样例        给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。二、解题思路    新建一个链表,用来存储交换完后的节点,然后再定义一个指针,另它指向head->next,然后每两个交换其中的节点即head->val与head->next->val交换,然后

2017-03-31 13:37:49 156

原创 合并两个排序链表

一、问题描述       将两个排序链表合并为一个新的排序链表          样例          给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。二、解题思路         新建一个新的链表p,再用两个指针分别遍历给出的两个链表,若前者节点小于等于后者节点,则前者节点进入新

2017-03-30 17:11:01 326

原创 链表划分

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

2017-03-29 22:01:06 137

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

一、问题描述    找到单链表倒数第n个节点,保证链表中节点的最少数量为n。      样例      给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.二、解题思路          方法跟删除链表中倒数第n个节点类似,要用一个前指针一个后指针,间隔n-1个节点,当前指针的下一个节点为空时后指针指向的节点即为倒数第n个节点,返回

2017-03-29 12:11:37 180

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

一、问题描述    给定一个排序链表,删除所有重复的元素每个元素只留下一个。       样例       给出 1->1->2->null,返回 1->2->null       给出 1->1->2->3->3->null,返回 1->2->3->null二、解题思路    定义两个指针,一个指向head,一个指向head->next,分别生成链表l1,

2017-03-29 11:04:43 210

原创 链表求和

一、问题描述         你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。      样例      给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null二、解题思路  链表求和问题,新建一

2017-03-28 23:16:35 168

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

一、问题描述 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。      样例      给出链表1->2->3->4->5->null和 n = 2.      删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.二、解题思路   运用两个指针,front和behind,一个先遍历链表,让front指针先走n步,然后front和beh

2017-03-28 22:05:50 162

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

一、问题描述   给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。       样例       给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。二、解题思路   运用链表指针指向要删除的下一个节点元素,即可把要删除的元素删除。三、我的代码   class Solution

2017-03-27 23:07:13 225

原创 翻转链表

一、问题描述    翻转一个链表     样例     给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null二、解题思路   遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。三、我的代码    class Solution {public

2017-03-27 22:33:22 199

原创 链表插入排序

一、问题描述   用插入排序对链表排序        样例        Given 1->3->2->0->null, return 0->1->2->3->null二、解题思路   开头的dummy的作用是,把head开头的链表一个个插入到dummy开头的链表中,然后当head的链表不为空时,定义一个指针变量node,当node->next不为空且node指向的

2017-03-27 21:19:05 281

原创 删除链表中的元素

一、解题思路        运用指针依次查找元素,若找到要删除的元素,然后将指针指向此元素下一个元素,即head=head->next->next; 若不是要删除的元素,继续向下寻找,即head=head->next;最后返回删除之后的链表。二、问题描述   删除链表中等于给定值val的所有节点。         样例     给出链表 1->2->3->3->4-

2017-03-27 20:05:47 199

空空如也

空空如也

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

TA关注的人

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