自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【剑指offer刷题】-总目录

受到一个博客(https://blog.csdn.net/yuhuaihzu/article/details/76974393)的启发,决定把剑指offer的题目分一下类,便于日后的更新。注:该分类题目序号与剑指offer(第二版)一致。1.线性表1.1数组面试题3:数字中重复的数字面试题4:二维数组中的查找面试题21:调整数组顺序使奇数位于偶数前面面试题39:数组中出现超过一半的数字面试题40:...

2018-06-28 17:58:22 297

转载 【转载】栈和队列的相互实现

转载于csbdong博客:https://www.cnblogs.com/csbdong/p/5677293.html转载原因:博主关于栈和队列的相互实现叙述的详细简明,易于理解。关于栈和队列的考察  栈和队列都是比较常用的数据结构。栈的应用非常的广泛,比如说,递归函数的实现就是借助于栈保存相关的数据。操作系统中每个线程也会使用栈来保存函数调用涉及到的一些参数和其他变量等。栈最大的一个特点就是先进...

2018-07-10 15:41:10 138

原创 【剑指offer刷题】-23-链表中环的入口节点

题目描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。注:常考题目,快慢指针的应用思路:分两步:第一步:确定链表是否有环。定义快慢指针:pFast,pSlow;pFast每次走两步,pSlow每次走一步,进行遍历,如果两个指针相遇,即pFast=pSlow,则链表有环,如果pFast达到链表尾部(pFast->next=nullptr)两个指针都没有相遇,则链表...

2018-07-10 11:56:58 188

原创 【剑指offer刷题】-22-链表中倒数第K个节点

题目描述;输入一个链表,输出该链表中倒数第k个结点。注:代码的鲁棒性思路:为了只遍历一次链表,定以两个指针,第一个指针从链表的开头开始遍历,向前走k-1步,第二个指针保持不动;从第k步开始,第二个指针开始遍历,直到第一个指针遍历到链表的尾节点,此时第二个指针指向的虎眼石倒数第K个节点。其中要考虑空链表,k=0,以及k>链表长度的情况。(源于剑指offer)/* struct ListNode...

2018-07-10 11:37:26 131

原创 【面试常考点】操作系统基础知识--06-10

6.一般情况下在Linux/Windows平台下栈空间的大小?答:在Linux下是由系统环境变量来控制栈的大小的,默认8M。Windows下可以由编译器决定栈大小,VC++ 6.0 默认的栈空间是1M。7.异常和中断的区别答:异常:是CPU内部出现的中断,即在CPU执行特定指令时出现的非法情况。又称同步中断,只有在一条指令执行后才会发出中断,不可能在指令执行期间发生异常。产生的原因:程序的错误或内...

2018-07-04 22:54:41 536

原创 【剑指offer刷题】补充01:滑动窗口的最大值

题目描述:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1},{2,[3,4,2],6,2,5,1}, {2,3,[4,...

2018-07-04 22:46:57 129

原创 【面试常考点】操作系统基础知识--01-05

1.进程与线程的区别和联系答:(1)基本概念进程,是并发执行的程序在执行过程中分配和管理资源的基本单位。每个进程都有自己的地址空间(即进程空间,其大小只与处理机的位数有关)。进程至少5种状态:初始态,执行态,等待状态,就行状态,终止状态。线程,是进程的一部分,是CPU调度的一个基本单位。一个没有线程的进程可以被看成单线程的。引入线程的好处:易于调度,提高并发性,开销小,利于充分发挥多处理器的功能。...

2018-06-28 20:23:32 252

原创 【剑指offer刷题】-27-二叉树的镜像

难度:简单题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5注:考察二叉树...

2018-06-28 16:46:24 139

原创 【剑指offer刷题】-26-树的子结构

难度:中等题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)注:考察二叉树知识点思路:/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL...

2018-06-28 16:35:28 133

原创 【剑指offer刷题】-25-合并两个排序的链表

难度:中等题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。注:考察链表,是面试常见题思路:递归思想(源于剑指offer)/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class S...

2018-06-19 17:29:40 112

原创 【剑指offer刷题】-24-反转链表

难度:简单题目描述:输入一个链表,反转链表后,输出链表的所有元素。注:考察链表知识注意关于链表问题的常见注意点的思考: 1、如果输入的头结点是 NULL,或者整个链表只有一个结点的时候;2、链表断裂的考虑 思路:采用递归的思想,走到链表的末端,然后更新每一个node的next值,实现链表的反转。实现链表的反转。而newhead 的值没有发生改变,为该链表的最后一个结点,所以,反转后,...

2018-06-19 17:07:27 124

原创 【剑指offer刷题】-22-链表倒数第k个节点

难度:简单题目描述:输入一个链表,输出该链表中倒数第k个结点。注:考察单向链表思路:为了实现只遍历一次链表就能找到倒数第k个节点。利用两个指针ptr1,ptr2实现,第一个指针ptr1从链表头遍历向前走k-1步,ptr2保持不动;从第k步开始,第二个指针开始从链表头遍历,由于两只指针保持k-1的距离,当ptr1到达链表的尾节点时,莆田人正好指在倒数第k个节点上,返回ptr2即可(源于剑指offer...

2018-06-19 16:54:05 185 2

原创 【剑指offer刷题】-16-数值的整数次方

难度:简单题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。注:考察递归思想。思路:实现的是库函pow的功能。先求平方,在平方的基础上求4次方,依次递归实现。公式为(源于剑指offer)public class Solution { boolean invalidInput=false; pub...

2018-06-18 20:10:59 149

原创 【剑指offer刷题】-15-二进制中1的个数

难度:简单题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。注:考察位运算及二进制的知识点思路:把整数减去1,再和原整数做与运算,就会把该整数最右边的1变成0.那么一个整数的二进制表示有几个1就有几次这样的操作。(源于剑指offer)class Solution { public: int NumberOf1(int n) {         int count...

2018-06-17 18:12:21 112

原创 【剑指offer刷题】-11-旋转数组的最小数字

难度:简单题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。注:考察二分查找,二分查找时数组是有序的思路: 利用旋转数字的特性,旋转数组可以看成两个排序的数组。...

2018-06-17 17:52:18 148

原创 【剑指offer刷题】-09-用两个栈实现队列

难度:简单题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。注:此题考查队列和栈的知识点。思路:栈和队列是常见的数据结构,栈是先进后出,队列是先进先出。本题主要实现队列的插入和删除过程。两个栈stack1,stack2,首先插入元素{a,b,c}到stack1中,此时stack1栈顶元素是c,stack2为空,出队时,将stack1中元素压入stack2...

2018-06-17 17:11:41 193

原创 【剑指offer刷题】-07-重建二叉树

难度:简单题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。注:此题考查二叉树知识点思路:递归的思想,在二叉树的前序遍历(根-左-右)中根节点是第一个被遍历的,而中序遍历中(左-根-右)中,根节点只中间的...

2018-06-17 16:40:26 157

原创 【剑指Offer刷题】-06-从尾到头打印链表

难度:简单题目描述:输入一个链表,从尾到头打印链表每个节点的值。注:此题考查链表的知识点思路:利用栈(先进后出的特性)辅助输出。/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) ...

2018-06-16 18:24:39 125

原创 【剑指offer刷题】-05-替换字符串

class Solution { public: void replaceSpace(char *str,int length) { } };

2018-06-16 18:07:09 121

空空如也

空空如也

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

TA关注的人

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