面试题
scfor333
一生几十亿万步
展开
-
面试题——最长上升字串
AcWing 1490 最长上升子串题目 给出一个长度为n的由正整数构成的序列,你需要从中删除一个正整数,很显然你有很多种删除方式,你需要对删除这个正整数以后的序列求其最长上升子串,请问在所有删除方案中,最长的上升子串长度是多少。 这里给出最长上升子串的定义:即对于序列中连续的若干个正整数,满足ai+1 > ai,则称这连续的若干个整数构成的子串为上升子串,在所有的上升子串中,长度...原创 2020-05-06 21:40:03 · 432 阅读 · 0 评论 -
剑指Offer(面试题9-1)——用两个栈实现队列
剑指Offer(面试题9-1)题目请用栈实现一个队列,支持如下四种操作:push(x) – 将元素x插到队尾;pop() – 将队首的元素弹出,并返回该元素;peek() – 返回队首元素;empty() – 返回队列是否为空;注意:你只能使用栈的标准操作:push to top,peek/pop from top, size 和 is empty;如果你选择的编程语言没有...原创 2020-04-01 11:28:47 · 192 阅读 · 0 评论 -
剑指Offer(面试题8-1)——二叉树的下一个节点
剑指Offer(面试题8-1)题目给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点。注意:如果给定的节点是中序遍历序列的最后一个,则返回空节点;二叉树一定不为空,且给定的节点一定不是空节点;样例假定二叉树是:[2, 1, 3, null, null, null, null], 给出的是值等于2的节点。则应返回值等于3的节点。解释:该二叉树的结构如下,2的后继节...原创 2020-04-01 11:15:13 · 159 阅读 · 0 评论 -
剑指Offer(面试题6-1)——从尾到头打印链表
剑指 Offer 面试题(6-1)题目输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]思路 在这里我们不再解释与反转链表思路相同的做法(用三个指针,改变链表结构,想了解可以看这里——反转链表) 这里我们提供另一种不改变链表结构的方式,首先我们审读题意,将链表从尾到头输出,也就是类似于后...原创 2020-04-01 10:53:34 · 140 阅读 · 0 评论 -
剑指Offer(面试题4-1)——二维数组中的查找
剑指 Offer——面试题 4-1题目在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]如果输入查找数值为7,则返回true,如果...原创 2020-03-26 22:31:18 · 930 阅读 · 0 评论 -
剑指Offer(面试题3-2)——不修改数组找出重复的数字
剑指 Offer——面试题 3-2题目不修改数组找出重复的数字在一个长度位n + 1的数组里的所有数字都在1 ~ n的范围内,所以数组中至少有一个数字是重复的,请找出数组中任意一个重复的数字,但不能修改输入的数组输入样例[2, 3, 5, 4, 3, 2, 6, 7]输出样例2 或 3思路 这道题比较特殊的点就是不允许改变输入数组,如果不改变输入数组的话,我们就不能对数...原创 2020-03-20 23:08:43 · 236 阅读 · 0 评论 -
面试题——反转链表
AcWing 35 反转链表题目定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思考题:请同时实现迭代版本和递归版本。样例输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL思路迭代版本 这道题使用迭代的思想很容易思考,我们只需要准备三个指针,分...原创 2020-03-19 15:30:34 · 247 阅读 · 0 评论 -
面试题——链表中环的入口节点
AcWing 34 链表中环的入口节点题目给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。样例给定如上所示的链表:[1, 2, 3, 4, 5, 6]2注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。则输出环的入口节点3.思路 这道题解法很巧妙,有一股数学的气息,首先我们回忆一下怎么确定...原创 2020-03-18 19:15:05 · 218 阅读 · 0 评论 -
面试题——包含min函数得栈
AcWing 41 包含 min 函数得栈题目设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈。push(x)–将元素x插入栈中pop()–移除栈顶元素top()–得到栈顶元素getMin()–得到栈中最小元素样例MinStack minStack = new MinStack();minStack.push(-1);minStack....原创 2020-03-18 18:49:57 · 209 阅读 · 0 评论 -
剑指Offer(面试题3-1)——数组中的重复数字
剑指 Offer——面试题 3题目找出数组中的重复数字在一个长度为n的数组里的所有数字都在0 ~ n - 1的范围内,数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次,请找出数组中任意一个重复的数字输入样例[2, 3, 1, 0, 2, 5, 3]输出样例2 或 3思路 这道题是一个很常见的数组问题,解法也有很多种, 首先想到的我们可以...原创 2020-03-17 11:26:22 · 159 阅读 · 0 评论 -
面试题——寻找矩阵中的极小值
AcWing 1452 寻找矩阵的极小值题目给定一个n×n的矩阵,矩阵中包含n×n个_互不相同_的整数。定义极小值:如果一个数的值比与它相邻的所有数字的值都小,则这个数值就被称为极小值。一个数的相邻数字是指其上下左右四个方向相邻的四个数字,另外注意,处于边界或角落的数的相邻数字可能少于四个。要求在O(nlogn)的时间复杂度之内找出任意一个极小值的位置,并输出它在第几行第几列。本题中矩...原创 2020-03-17 11:02:33 · 1632 阅读 · 0 评论 -
面试题——单链表快速排序
AcWing 1451 单链表快速排序题目给定一个单链表,请使用快速排序算法对其排序要求:期望平均时间复杂度为O(nlogn),期望额外空间复杂度为O(logn)思考题: 如果只能改变链表结构,不能修改每个节点的val值该如何做呢数据范围链表中的所有数大小均在int范围内,链表长度在[0, 10000]输入样例:[5, 3, 2]输出样例:[2, 3, 5]思路 ...原创 2020-03-16 23:03:42 · 883 阅读 · 0 评论 -
面试题——蛇形矩阵
AcWing 756 蛇形矩阵题目输入两个整数n和m,输出一个n行m列的矩阵,将数字1到n * m按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数n和m。输出格式输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤1001≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5思路...原创 2020-03-16 08:15:17 · 1093 阅读 · 0 评论