自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (红黑树-set/multiset)牛客剑指Offer面试题40:最小的k个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路代码

2019-12-30 19:30:11 167

原创 牛客剑指Offer面试题39:数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路代码...

2019-12-30 15:51:57 104

原创 牛客剑指Offer面试题38:字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路代码...

2019-12-30 11:05:33 144

原创 (引用传递与地址传递)牛客剑指Offer面试题37:序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到...

2019-12-26 16:30:16 106

原创 牛客剑指Offer面试题36:二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路注意:1.主函数调用转换函数时的函数参数要传入引用(地址传递,才能真正的改变实参)即:ConvertNode(pRootOfTree, &pLastNodeInList)2.排序函数的参数类型为二级指针(函数参数传入二级指针可以改变指向尾结点指针的指向即...

2019-12-26 09:30:33 121

原创 牛客剑指Offer面试题34:二叉树中和为某一值的路径

题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路代码...

2019-12-25 10:06:14 76

原创 牛客剑指Offer面试题33:二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路二叉搜索树(二叉排序树/二叉查找树)定义:若它的左(右)子树不空,则左(右)子树上所有节点的值均小于(大于)它的根节点的值.意义:构建一棵二叉搜索树的目的不是为了排序,而是为了提高查找和删除关键字的速度.后序遍历序列的最后一个数字为根节点...

2019-12-24 18:05:47 198

原创 调度

定义:

2019-12-20 17:00:53 587

原创 [题目3]牛客剑指Offer面试题32:从上到下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路题目1:不分行从上到下打印二叉树定义一个vector容器存放打印的结果,利用队列(双端队列deque,感觉队列queue也可),将树的节点指针入队,每次打印队首指针指向的元素的数据域元素(额外设定一个指针指向队首),并分别判断该节点是否有左,右子节点,若有则将对应指针入队,最后弹出队首元素,然后开始下次循环.题目2:分行从...

2019-12-19 16:08:39 75

原创 进程

进程定义:(清华)一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程程序本身是静态的,只有操作系统把执行程序调入到内存中后,通过CPU执行程序中的一条条指令,对数据进行处理,完成一定功能的过程(动态执行的过程)进程不完全等于程序,从某种角度来说,正在运行的程序可以看做进程,会消耗资源(如CPU,内存,网络,文件系统等),进程是一个动态执行的过程,程序是一个代码程序的每次执行构成不...

2019-12-19 15:25:14 207

原创 牛客剑指Offer面试题31:栈的压入,弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)...

2019-12-18 11:30:07 77

原创 牛客剑指Offer面试题30:包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

2019-12-18 09:58:53 90

原创 牛客剑指Offer面试题29:顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10....

2019-12-15 16:27:03 87

原创 牛客剑指Offer面试题28:对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

2019-12-15 09:49:21 98

原创 牛客剑指Offer面试题27:二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/ 6 10/ \ / 5 7 9 11镜像二叉树8/ 10 6/ \ / 11 9 7 5...

2019-12-13 19:31:08 132 1

原创 牛客剑指Offer面试题8:二叉树的下一个节点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路已知题干为中序遍历1.如一个节点有右子树,该节点的下一节点为它的右子树的最左子节点2.如一个节点没有右子树,且该节点为父节点的左子节点,则该节点的下一节点为它的父节点3.(较复杂情况)如一个节点没有右子树,且它还是其父节点的右子节点...

2019-12-13 17:25:26 119

原创 牛客剑指Offer面试题7:重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路(递归)1.设立一个根节点(为前序遍历第一个值)2.在中序遍历中找到根节点,并划分了左子树和右子树(以此在前序遍历也划分开);3.建立4个容器...

2019-12-13 16:21:11 86

原创 牛客剑指Offer面试题26:树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路1.判断树A中有无与树B的根节点相同的节点R,如无相同节点,则树B肯定不是树A子结构2.如树A中有树B的根节点,则递归的判断其各自左右节点的值是否相同注意:注意已知题干的审题,如果给出的树节点的数据域为double或float型数据(如剑指Offer书上),则判断树A和树B节点值是...

2019-12-13 10:00:40 89

原创 牛客剑指Offer面试题25:合并两个排序的链表

1.两链表分别比较两链表头节点值,小的则为合并后链表头节点.相同操作继续比较剩余两链表直至结束.2.鲁棒性(有空链表):一空+二 => 二一+二空 =>一空+空=>空题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*struct ListNode { int val; struct ListNode *next; L...

2019-12-12 21:40:47 86

原创 牛客剑指Offer面试题24:反转链表

思路:设定三个指针,分别指向当前节点pNode, 当前节点的前一节点pPreNode, 当前节点的下一节点pNext(有疑问,为何pNext在while内部定义,其他指针都在while外部定义)(答:只有while判断了当前节点非空,其才有next指针域)题目描述输入一个链表,反转链表后,输出新链表的表头。/*struct ListNode { int val; struct Li...

2019-12-12 20:14:45 118

原创 牛客剑指Offer面试题23:链表中环的入口节点

解题步骤:一.确定链表是否存在环(代码中MeetingNode函数)方法:快慢指针(1)如存在环,则找到快慢两指针相遇的节点(该节点一定在环中,且为环中的任一节点)(2)不存在环,返回nullptr二.确定环的长度方法:从MeetingNode函数返回的节点出发走回原处的数目即为节点数目n(设两个指针指向该节点,一个走,一个不走)三.确定环的入口节点(代码中EntryNodeOfLo...

2019-12-12 16:45:56 114

原创 牛客剑指Offer面试题22:(删除)链表中倒数第k个节点

优先考虑小的遍历次数,并注意代码的鲁棒性(各种特殊条件:头指针为空;节点数为0;链表总节点数小于k等各种令代码崩溃的条件)题目描述输入一个链表,输出该链表中倒数第k个结点。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/clas...

2019-12-12 14:46:04 205

原创 [待]牛客剑指Offer面试题21:调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。原书代码:(不保证奇奇/偶偶相对位置不变)void reorderOddEven(int* pData, unsigned int length){ //判断合法性 if(pData == nullptr || ...

2019-12-12 11:26:46 72

原创 牛客剑指Offer面试题18:删除链表中(重复)的节点

总结:题目1:代码并非完美,是基于要删除的节点的确在链表中的假设,判断节点是否在链表中需O(n),但受题干O(1)时间限制所限只能将责任推给了函数的调用者.面试时可以主动提出这一点,证明自己考虑问题很全面.题目2:已知:给定链表节点与函数的定义如下struct ListNode{ int m_nValue; ListNode* m_pNext;}void deleteNode...

2019-12-11 20:47:35 174

原创 C++Primer学习随笔

类型修饰符(*或&) 声明符(如 int i=1024, *p=&i, &r=i; 中int后面的都是声明符)模糊:P54默认状态下,const独享仅在文件内有效P58顶层/底层constP59 constexpr变量, 字面值类型2.5.3 decltype疑问:P55(引用本身都不能改变, 还需要在引用前加const吗? 如const int &...

2019-12-11 10:16:29 180

原创 牛客剑指Offer面试题17:打印从1到最大的n位数(牛客无)

1.注意字符型常量和整型数值之间转换:(1)某个字符c进行减’0’操作得到c的整型数值.如代码中number[i] - ’ 0 ’ 得到number[i]的整型数值(2)相反的,某个整型数值加’0’得到该数值对应的字符.如代码中number[i] = ‘0’ + nSum2.每次Increment函数都会返回一个是否溢出的标识(即达到了最大的n位数)并且在Increment函数中执行对字符串...

2019-12-11 10:12:25 130

原创 剑指Offer总述

面试 厚积薄发 戒骄戒躁第二章第三章 高质量的代码1.代码的规范性书写、布局、命名(最好用完整的英文单词组合命名变量和函数)2.代码的完整性一、从3个方面确保代码的完整性1.普通功能:(1)如提到最大的数字,有多大? 用int, long long…表示是否会溢出? 如果任意大,则需用特殊数据结构,如字符串或数组表示以防溢出。2.边界值使用循环时循环的边界条件,使用递归时终止的...

2019-12-10 17:34:02 128

原创 牛客剑指Offer面试题16:数值的整数次方

1.在函数外设定全局变量,用以标识是否出错好处:当标识显示没错时,可以直接使用函数的返回值(如直接传递给其他变量或作为其他函数的参数来使用)坏处:可能忘记去检查标识的正误而留下安全隐患2.注意指数可能为0或负数,且要考虑到底数为0时的计算(虽然0的0次方没有意义,但是考虑周全会加分,主动向面试官补充这点)3.[提高效率的细节]位运算(位与/位或/异或/左移/右移)的效率比乘除法及求余运算的...

2019-12-10 17:32:36 118

空空如也

空空如也

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

TA关注的人

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