
面试题试水
hanmin822
个人Github地址:https://github.com/hanmin0822
展开
-
【模拟面试】#19 复制带随机指针的链表 文件的最长绝对路径 分割等和子集
题目1给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。我们用一个由n个节点组成的链表来表示输入/输出中的链表。每个节点用一个[val, random_index]表示:val:一个表示Node.val的整数。 random_index:随机指针指向的节点索引(范围从0到n-1);如果不指向任何节点,则为null。示例 1:输入:head = [[7,null],[13,0],[...原创 2020-07-29 09:54:12 · 386 阅读 · 0 评论 -
【模拟面试】#18 N叉树的最大深度 最长特殊序列 II 接雨水
题目1给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。例如,给定一个3叉树:我们应返回其最大深度,3。说明:树的深度不会超过1000。 树的节点总不会超过5000。思路及代码遍历,注意是N叉树不是二叉树就行,记录最大层数/*// Definition for a Node.class Node {public: int val; vector<Node*> child...原创 2020-07-28 16:07:35 · 392 阅读 · 0 评论 -
【模拟面试】#17 整数反转 被围绕的区域 二分查找
题目1给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路及代码转字符串,直接反转,再通过 stoll 函数转成long long类型,这样保证在范围内...原创 2020-07-27 14:27:30 · 176 阅读 · 0 评论 -
【模拟面试】#16 最接近的三数之和 统计全 1 子矩形 三等分
题目1给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3 -10^3<= nums[i]<= 10^3 ...原创 2020-07-26 09:54:48 · 258 阅读 · 0 评论 -
【模拟面试】#15 搜索二维矩阵 II 钥匙和房间 奇偶跳
题目1编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 target=5,返回...原创 2020-07-25 10:28:43 · 208 阅读 · 0 评论 -
【模拟面试】#14 方阵中战斗力最弱的 K 行 合并石头的最低成本 等差数列划分 II - 子序列
题目1给你一个大小为m* n的方阵mat,方阵由若干军人和平民组成,分别用 1 和 0 表示。请你返回方阵中战斗力最弱的k行的索引,按从最弱到最强排序。如果第i行的军人数量少于第j行,或者两行军人数量相同但i小于j,那么我们认为第i行的战斗力比第j行弱。军人总是排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。示例 1:输入:mat = [[1,1,0,0,0], [1,1,1,1,0], [1,0,0,0,0], [1,...原创 2020-07-24 09:33:44 · 228 阅读 · 1 评论 -
【模拟面试】#13 丑数 II 网络延迟时间 单字符重复子串的最大长度
题目1编写一个程序,找出第n个丑数。丑数就是质因数只包含2, 3, 5的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1是丑数。 n不超过1690。思路及代码任意一个丑数一定是另一个丑数乘以2或3或5得到的,我们可以使用一个数组将已经确认为丑数的数按照从小到大的顺序记录下来,每个丑数都是前面的丑数乘以2、3或5得来的。class Solution {...原创 2020-07-23 10:03:43 · 141 阅读 · 0 评论 -
【模拟面试】#12 最小差值 I 二进制链表转整数 从英文中重建数字
题目1给你一个整数数组A,请你给数组中的每个元素A[i]都加上一个任意数字x(-K <= x <= K),从而得到一个新数组B。返回数组B的最大值和最小值之间可能存在的最小差值。示例 1:输入:A = [1], K = 0输出:0解释:B = [1]示例 2:输入:A = [0,10], K = 2输出:6解释:B = [2,8]示例 3:输入:A = [1,3,6], K = 3输出:0解释:B = [3,3,3] 或 B...原创 2020-07-21 22:40:52 · 168 阅读 · 0 评论 -
【模拟面试】#11 将有序数组转换为二叉搜索树 Dota2 参议院 划分字母区间
题目1将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5思路及代码从定义知道,BST的中序遍历为一个递增序列,给定的数组其实就是中序遍历结果.原创 2020-07-20 20:00:33 · 309 阅读 · 0 评论 -
【模拟面试】#10 在既定时间做作业的学生人数 解码方法 最小的必要团队
题目1给你两个整数数组startTime(开始时间)和endTime(结束时间),并指定一个整数queryTime作为查询时间。已知,第i名学生在startTime[i]时开始写作业并于endTime[i]时完成作业。请返回在查询时间queryTime时正在做作业的学生人数。形式上,返回能够使queryTime处于区间[startTime[i], endTime[i]](含)的学生人数。示例 1:输入:startTime = [1,2,3], endTim...原创 2020-07-15 15:26:29 · 169 阅读 · 0 评论 -
【模拟面试】#9 实现 Trie (前缀树) 摘樱桃 最大二叉树 II
题目1https://leetcode-cn.com/problems/cherry-pickup/solution/dong-tai-gui-hua-xiang-xi-jie-xi-tu-jie-by-newhar/原创 2020-07-14 13:45:57 · 510 阅读 · 0 评论 -
【模拟面试】#8 填充每个节点的下一个右侧节点指针 重塑矩阵 O(1) 时间插入、删除和获取随机元素 - 允许重复
题目1给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有next 指针都被设置为NULL。示例:输入:{"$id":"1","left":{"$id":"2"...原创 2020-07-13 11:56:41 · 151 阅读 · 1 评论 -
【模拟面试】#7 翻转图像 按既定顺序创建目标数组 在线选举
题目1给定一个二进制矩阵A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转[1, 1, 0]的结果是[0, 1, 1]。反转图片的意思是图片中的0全部被1替换,1全部被0替换。例如,反转[0, 1, 1]的结果是[1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,0]]输出: [[1,0,0],[0,1,0],[1,1,1]]解释: 首先翻转每一行: [[0,...原创 2020-07-11 10:32:07 · 137 阅读 · 0 评论 -
【模拟面试】#6 回文数 乘积小于K的子数组 链表中的下一个更大节点
题目1判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?思路及代码上面是用转字符串的办法,.原创 2020-07-09 14:25:59 · 180 阅读 · 0 评论 -
【模拟面试】#6 克隆图 两个列表的最小索引总和 叶子相似的树
题目1给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)。图中的每个节点都包含它的值val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示...原创 2020-07-08 10:04:33 · 242 阅读 · 0 评论 -
【模拟面试】#5 最接近的三数之和 山羊拉丁文 最长快乐前缀
题目1给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3 -10^3<= nums[i]<= 10^3 ...原创 2020-07-06 16:07:18 · 219 阅读 · 0 评论 -
【模拟面试】#4 合并两个有序数组 环形子数组的最大和 祖父节点值为偶数的节点和
题目1给你两个有序整数数组nums1和nums2,请你将nums2合并到nums1中,使nums1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]...原创 2020-07-04 20:07:42 · 190 阅读 · 0 评论 -
【模拟面试】#3 删除子文件夹 行相等的最少多米诺旋转 打乱数组
题目1你是一位系统管理员,手里有一份文件夹列表folder,你的任务是要删除该列表中的所有子文件夹,并以任意顺序返回剩下的文件夹。我们这样定义「子文件夹」:如果文件夹folder[i]位于另一个文件夹folder[j]下,那么folder[i]就是folder[j]的子文件夹。文件夹的「路径」是由一个或多个按以下格式串联形成的字符串:/后跟一个或者多个小写英文字母。例如,/leetcode和/leetcode/problems都是有效的路径,而空字符串和...原创 2020-06-30 11:31:45 · 179 阅读 · 1 评论 -
【模拟面试】#2 最大二叉树 单词子集 点菜展示表
题目1给你一个数组orders,表示客户在餐厅中完成的订单,确切地说,orders[i]=[customerNamei,tableNumberi,foodItemi],其中customerNamei是客户的姓名,tableNumberi是客户所在餐桌的桌号,而foodItemi是客户点的餐品名称。请你返回该餐厅的点菜展示表。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐品数量...原创 2020-06-16 10:16:50 · 287 阅读 · 0 评论 -
【模拟面试】#1 判断四次方 重构字符串 模拟布尔表达式
面试题1给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?思路及代码不使用循环或者递归的话,只能用二进制+位运算完成,网上有题解,这里因为不是硬性要求,就直接以最简单的循环解决,注意零次方为1的单独判断。class Solution {public: bool isPowerOfFour(int..原创 2020-06-15 15:29:19 · 212 阅读 · 0 评论