面试笔试题
逗号,!
这个作者很懒,什么都没留下…
展开
-
笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2、4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定)
笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2、4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定)解析:想让甲赢,只需保证最后剩8颗糖(乙取2颗,甲取4颗;乙取4颗,甲取4颗;乙取6颗,甲取颗),甲就可以赢。那么甲只要保证最后剩余8颗糖,甲就能赢。那么该如何保证最后剩余8颗糖呢?其实只要保证甲第一次取糖后,剩余的数字为8的整数倍(即8可以...原创 2019-03-03 22:09:07 · 3426 阅读 · 0 评论 -
复制含有随机指针节点的链表
【题目】 一种特殊的链表节点类描述如下: public class Node { public int value; public Node next; public Node rand; public Node(int data) { this.value = data; } } Node类中的value是节点值,next指针和正常单链表中next指针的意义 一 样,都指向下一个节点,rand指...原创 2019-09-04 16:55:59 · 98 阅读 · 0 评论 -
将单向链表按某值划分成左边小、中间相等、右边大的形式
【题目】 给定一个单向链表的头节点head,节点的值类型是整型,再给定一个 整 数pivot。实现一个调整链表的函数,将链表调整为左部分都是值小于 pivot 的节点,中间部分都是值等于pivot的节点,右部分都是值大于 pivot的节点。 除这个要求外,对调整后的节点顺序没有更多的要求。 例如:链表9->0->4->5>1,pivot=3。 调整后链表可以是1->0...原创 2019-09-04 11:25:17 · 614 阅读 · 0 评论 -
如何仅用队列结构实现栈结构 和如何仅用栈结构实现队列结构
package basic_class_03;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;/** * 类名:Code_03_StackAndQueueConvert<br> * 功能:1.仅用队列结构实现栈结构 * 2.仅用栈结构实现队列结构br>...原创 2019-08-23 00:33:51 · 147 阅读 · 0 评论 -
实现一个特殊的栈,在实现基本功能的基础上,在实现返回栈中的最小元素 (要求:pop,push,getMin操作的时间复杂度都是O(1),设计栈类型可以使用现成的栈结构)
题目:实现一个特殊的栈,在实现基本功能的基础上,在实现返回栈中的最小元素(要求:pop,push,getMin操作的时间复杂度都是O(1),设计栈类型可以使用现成的栈结构)代码:package basic_class_03;import java.util.Stack;/** * 类名:Code_02_GetMinStack<br> * 功能:实现一个特殊的栈,在实现基本...原创 2019-08-22 23:18:45 · 227 阅读 · 0 评论 -
用数组结构实现大小固定的队列和栈
package basic_class_03;/** * 类名:Code_01Array_To_Stack_Queue<br> * 功能:用数组结构实现大小固定的队列和栈<br> * 作者:java战士<br> * 日期:2019/8/22<br> * 版本:v1.0.0 * 历史修订: */public class Code_0...原创 2019-08-22 22:16:28 · 88 阅读 · 0 评论 -
给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且不能用非基于比较的排序
解法:首先,输入的数组是还没有排好序的,题目要求是不能使用非基于比较的排序而且排序算法的时间复杂度最低都要O(NlogN),这不符合题目要求的时间复杂度O(N),所以我们不能用普通的排序算法去解决该问题。要做到时间复杂度为O(N),那么第一时间想到的就是遍历数组的时候只会对数组遍历一趟。这里给大家介绍一种非常巧妙的算法解决该问题。假如数组中有n个数,遍历一遍数组得到数组中的最大值max,最小...原创 2019-08-22 14:41:15 · 1019 阅读 · 2 评论 -
旋转正方形矩阵
【题目】给定一个整型正方形矩阵matrix,请把该矩阵调整成 顺时针旋转90度的样子。【要求】 额外空间复杂度为O(1)。例如:1 2 3 45 6 7 89 10 11 1213 14 15 16结果:13 9 5 114 10 6 215 11 7 316 12 8 4思路:宏观代替微观的思想先旋转外圈,左上角(a,b)和右下角(c,d)可以确定一个子矩阵,然后a+...原创 2019-08-25 23:50:19 · 151 阅读 · 0 评论 -
判断一个链表是否为回文结构
【题目】 给定一个链表的头节点head,请判断该链表是否为回 文结构。例如: 1->2->1,返回true。 1->2->2->1,返回true。 15->6->15,返回true。 1->2->3,返回false。进阶: 如果链表长度为N,时间复杂度达到O(N),额外空间复杂 度达到O(1)。思路:方法一:将链表元素一一装进栈中,因为...原创 2019-08-25 23:48:22 · 137 阅读 · 0 评论 -
打印两个有序链的公共部分
【题目】 给定两个有序链表的头指针head1和head2,打印两个 链表的公共部分。代码:package basic_class_03;/** * 类名:Code_10_PrintCommonPart<br> * 功能:打印两个有序链的工共部分<br> * 作者:java战士<br> * 日期:2019/8/25<br> * 版本:...原创 2019-08-25 16:08:53 · 105 阅读 · 0 评论 -
在行列都排好序的矩阵中找数
【题目】 给定一个有N*M的整型矩阵matrix和一个整数K, matrix的每一行和每一 列都是排好序的。实现一个函数,判断K 是否在matrix中。例如:0 1 2 52 3 4 74 4 4 85 7 7 9如果K为7,返回true;如果K为6,返 回false。【要求】 时间复杂度为O(N+M),额外空间复杂度为O(1)思路:...原创 2019-08-25 15:48:07 · 172 阅读 · 0 评论 -
“之”字形打印矩阵(笔试题)
【题目】 给定一个矩阵matrix,按照“之”字形的方式打印这 个矩阵,例如:1 2 3 45 6 7 89 10 11 12“之”字形打印的结果为:1,2,5,9,6,3,4,7,10,11, 8,12【要求】 额外空间复杂度为O(1)。思路:思路:指定两个点,A和B,AB两个点均从矩阵的左上角出发,A一直往右走,一次移动一步,移动到最右边之后,向下...原创 2019-08-25 15:31:35 · 284 阅读 · 0 评论 -
反转单向和双向链表
【题目】 分别实现反转单向链表和反转双向链表的函数。【要求】 如果链表长度为N,时间复杂度要求为O(N),额外空间 复杂度要求为**O(1)代码:package basic_class_03;/** * 类名:Code_07_ReverseList<br> * 功能:反转列表<br> * 作者:java战士<br> * 日期:2019/8/24...原创 2019-08-24 17:46:48 · 115 阅读 · 1 评论 -
转圈打印矩阵
【题目】给定一个整型矩阵matrix,请按照转圈的方式打印它。 例如:1 2 3 45 6 7 89 10 11 1213 14 15 16打印结果为:1,2,3,4,8,12,16,15,14,13,9, 5,6,7,11, 10【要求】 额外空间复杂度为O(1)。思路:宏观代替微观的思想(1)先打印外圈,左上角(a,b)和右下角(c,d)可以...原创 2019-08-24 12:55:42 · 93 阅读 · 0 评论 -
猫狗队列(面试题)
题目:宠物、狗和猫的类如下:public class Pet { private String type; public Pet(String type) { this.type = type; } public String getPetType() { return this.type; } }public class Dog extends Pet { public Dog() { s...原创 2019-08-23 23:37:44 · 273 阅读 · 1 评论 -
两个单链表相交的一系列问题
【题目】 在本题中,单链表可能有环,也可能无环。给定两个 单链表的头节点 head1和head2,这两个链表可能相交,也可能 不相交。请实现一个函数, 如果两个链表相交,请返回相交的 第一个节点;如果不相交,返回null 即可。 要求:如果链表1 的长度为N,链表2的长度为M,时间复杂度请达到 O(N+M),额外 空间复杂度请达到O(1)。将题目拆分:判断链表是否有环,有环则返回第一个换节点...原创 2019-09-04 20:22:12 · 150 阅读 · 0 评论