- 博客(29)
- 收藏
- 关注
原创 【高频面试题】盛水最多的容器
1、题目给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例 2:输入...
2021-09-25 14:10:41 293
原创 【微软高频面试题】IFU缓存
示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]示例 2:输入:head = [1,2,3,4,5], k = 3输出:[3,2,1,4,5]示例 3:输入:head = [1,2,3,4,5], k = 1输出:[1,2,3,4,5]示例 4:输入:head = [1], k = 1输出:[1]
2021-09-24 14:26:40 273
原创 【面试高频题】回文链表
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1.题目请判断一个链表是否为回文链表。示例 1:输入: 1->2 输出: false示例 2:输入: 1->2->2->1 输出: true进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?2.解析1、先通过「双指针技巧」中的快慢指针来找到链表的中点:ListNode slow, fast;slow = fast = head;
2021-08-08 09:40:09 199
原创 【面试高频题】如何k个一组反转链表
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1.题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗? 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:
2021-08-07 09:56:45 186 1
原创 【面试高频题】反转链表
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1.题目给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4 输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1,
2021-08-05 09:44:21 213
原创 【面试高频题】将二叉树展开为链表
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1.题目给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null展开后的单链表应该与二叉树 先序遍历 顺序相同。示例 1:输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6
2021-08-04 09:21:07 151
原创 【面试高频题】填充二叉树节点的右侧指针
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1.题目给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 ne
2021-08-03 09:52:59 253
原创 【微软算法面试高频题】改编 N Sum 问题
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播看此文之前建议先看前文 【微软算法面试高频题】改编twoSum 问题一、threeSum这是 LeetCode 第 15 题:这个问题怎么解决呢?很简单,穷举呗。现在我们想找和为 target 的三个数字,那么对于第一个数字,可能是什么?nums 中的每一个元素 nums[i] 都有可能!那么,确定了第一个数字之后,剩下的两个数字可以是什么呢?其实就是和为target - nums
2021-08-02 09:39:17 174
原创 【干货】看过上千份简历后的经验总结
简历每周我的邮箱都会收到各式各样的简历,但是说实话通过率真的太低了,大家还是要好好写简历呀,能力再强简历差了,也不行啊。HR经常一天过几百份,甚至上千份简历,可能看10-30秒就会觉得留下来继续看一下,是邀约面试,还是PASS掉,但是很多简历甚至那10秒都撑不到。都说“人靠衣装佛靠金装”,同理我们出去找工作,简历也是我们的门面了,你想找到好工作,就得先过简历这一关了。那被PASS的原因就很多了,要么是不符合招聘要求,比如学历不符、个人硬实力不符、年限、薪资不匹配、简历花里胡哨、简历看不下去了等等。
2021-07-31 09:07:18 224
原创 【微软算法面试高频题】区间交集问题
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 问题给定两个由一些 闭区间 组成的列表,firstList 和 secondList ,其中 firstList[i] = [starti, endi] 而 secondList[j] = [startj, endj] 。每个区间列表都是成对 不相交 的,并且 已经排序 。返回这 两个区间列表的交集 。形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而
2021-07-30 09:50:32 502
原创 【微软算法面试高频题】区间覆盖问题
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 问题给你一个区间列表,请你删除列表中被其他区间所覆盖的区间。只有当 c <= a 且 b <= d 时,我们才认为区间 [a,b) 被区间 [c,d) 覆盖。在完成所有删除操作后,请你返回列表中剩余区间的数目。示例:输入:intervals = [[1,4],[3,6],[2,8]]输出:2解释:区间 [3,6] 被区间 [2,8] 覆盖,所以它被删除了。2
2021-07-29 09:41:45 266
原创 【微软算法面试高频题】二叉搜索树的最近公共祖先
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1.题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: ro
2021-07-25 09:24:08 308 2
原创 【微软算法面试高频题】跳跃游戏
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1.题目描述给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,
2021-07-24 09:27:32 584
原创 【微软算法面试高频题】逃脱阻碍
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目描述你在进行一个简化版的吃豆人游戏。你从 [0, 0] 点开始出发,你的目的地是 target=[xtarget,ytarget]target = [x_target, y_target]target=[xtarget,ytarget] 。地图上有一些阻碍者,以数组 ghosts 给出,第 iii 个阻碍者从 ghosts[i]=[xi,yi]ghosts[i] = [x_i,
2021-07-23 09:45:11 139
原创 【微软算法面试高频题】超级洗衣机
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 问题假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。 在每一步操作中,你可以选择任意 m(1≤m≤n)m (1 ≤ m ≤ n)m(1≤m≤n) 台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。 给定一个非负整数数组代表从左至右每台洗衣机中的衣物数量,请给出能让所有洗衣机中剩下的衣物的数量相等的最少的操作步数。如果不能使每台
2021-07-22 09:27:38 349
原创 【微软算法面试高频题】灯泡问题
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 问题现有一个房间,墙上挂有 n 只已经打开的灯泡和 4 个按钮。在进行了 m 次未知操作后,你需要返回这 n 只灯泡可能有多少种不同的状态。 假设这 n 只灯泡被编号为 [1, 2, 3 …, n],这 4 个按钮的功能如下:将所有灯泡的状态反转(即开变为关,关变为开)将编号为偶数的灯泡的状态反转将编号为奇数的灯泡的状态反转将编号为 3k^1 的灯泡的状态反转(k = 0,
2021-07-21 09:49:38 618
原创 【微软算法面试高频题】水壶问题
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目有两个容量分别为xxx升和yyy升的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好zzz升的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的zzz升水。你允许:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例 1: 输入: x = 3, y = 5, z = 4输出: True示例 2:输入: x
2021-07-20 09:24:15 506 11
原创 【微软算法面试高频题】吃掉N个橘子的最少天数
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子:吃掉一个橘子。如果剩余橘子数 n 能被 2 整除,那么你可以吃掉 n/2 个橘子。如果剩余橘子数 n 能被 3 整除,那么你可以吃掉 2*(n/3) 个橘子。 每天你只能从以上 3 种方案中选择一种方案。请你返回吃掉所有 n 个橘子的最少天数。示例 1:输入:n = 10输出:4解释:你总共有 1
2021-07-19 09:34:03 626 12
原创 【微软算法面试高频题】接雨水
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 问题给定 nnn 个非负整数 a1,a2,…,ana_1,a_2,…,a_na1,a2,…,an,每个数代表坐标中的一个点 (i,ai)(i, a_i)(i,ai) 。在坐标内画 nnn 条垂直线,垂直线 iii 的两个端点分别为 (i,ai)(i, a_i)(i,ai) 和 (i,0)(i, 0)(i,0)。找出其中的两条线,使得它们与 xxx 轴共同构成的容器可以容纳最多
2021-07-18 09:21:27 226 12
原创 【微软算法面试高频题】戳气球
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目有 n 个气球,编号为 0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数
2021-07-17 09:34:11 527 11
原创 【微软算法面试高频题】可怜的小猪
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目有 buckets 桶液体,其中正好有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断。不幸的是,你只有 minutesToTest 分钟时间来确定哪桶液体是有毒的。喂猪的规则如下:选择若干活猪进行喂养可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要时间。小猪喝完水后,必须有 minut
2021-07-16 09:26:25 326 12
原创 【微软算法面试高频题】堆箱子
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目给你一堆n个箱子,箱子宽 wiw_iwi、深 did_idi、高 hih_ihi。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。实现一种方法,搭出最高的一堆箱子。箱堆的高度为每个箱子高度的总和。输入使用数组[wi,di,hi][w_i, d_i, h_i][wi,di,hi]表示每个箱子。示例1: 输入:box = [[1, 1, 1
2021-07-15 11:53:02 816 2
原创 【微软算法面试高频题】回文对
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目给定一组互不相同的单词, 找出所有不同的索引对 (i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。示例 1:输入:words = ["abcd","dcba","lls","s","sssll"]输出:[[0,1],[1,0],[3,2],[2,4]] 解释:可拼接成的回文串为 ["dcbaabcd","abcddcba","s
2021-07-14 09:18:12 214 2
原创 【微软算法面试高频题】公交路线
微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注CSDN),进群参与讨论和直播1. 题目给你一个数组 routes ,表示一系列公交线路,其中每个 routes[i] 表示一条公交线路,第 i 辆公交车将会在上面循环行驶。例如,路线 routes[0] = [1, 5, 7] 表示第 0 辆公交车会一直按序列 1 -> 5 -> 7 -> 1 -> 5 -> 7 -> 1 -> … 这样的车站路线行驶。 现在从 source
2021-07-13 09:34:36 619 2
原创 【微软算法面试高频题】兄弟字符串
想加入大厂面试刷题群可添加微信:sxxzs3998 (备注CSDN)1.题目如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)2.解析2.1 O(n*m)的轮询方法判断string2中的字符是否在string1中: String 1: ABCDEFGHLMNOPQRS String 2: DCGSRQPO判断一个字符串是否在另一个字符串中,最直观也是最简单的思路是,针对第二个字符串string2中每一个字符,与第一个字符串
2021-07-11 09:26:29 221 2
原创 【微软算法面试高频题】俄罗斯套娃信封
1. 题目给你一个二维整数数组 envelopes ,其中 envelopes[i]=[wi,hi]envelopes[i] = [w_i, h_i]envelopes[i]=[wi,hi] ,表示第 iii 个信封的宽度和高度。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算 最多能有多少个 信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。注意:不允许旋转信封。示例 1:输入:envelopes = [[5,4
2021-07-10 11:22:31 271 2
原创 【微软算法面试高频题】丢鸡蛋问题
1. 题目如果你有2颗鸡蛋,和一栋100层高的楼,现在你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该如何用最少的测试次数对于任何答案楼层都能够使问题得到解决。如果你从某一层楼扔下鸡蛋,它没有碎,则这个鸡蛋你可以继续用如果这个鸡蛋摔碎了,则你可以用来测试的鸡蛋减少一个所有鸡蛋的质量相同(都会在同一楼层以上摔碎)对于一个鸡蛋,如果其在楼层iii扔下的时候摔碎了,对于任何不小于iii的楼层,这个鸡蛋都会被摔碎如果在楼层i扔下的时候没有摔碎,则对于任何不大于iii的楼层,这颗鸡蛋也不会摔碎从第1层扔下
2021-07-09 09:51:14 519 2
原创 【微软算法面试高频题】rand7()问题
想加入大厂面试刷题群的可添加微信(备注CSDN):1. 题目已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10()随机1~10。2. 解析这道题主要是考察的对概率的理解。要保证rand10()在整数1-10的均匀分布,可以构造一个1-10n 的均匀分布的随机整数区间(n为任何正整数)。假设x是这个1-10n区间上的一个随机整数,那么x%10+1就是均匀分布在1-10区间上的整数。由于(rand7()-1)*7+rand7()可以构造出均匀分布在1-49的
2021-07-08 09:58:04 441 4
原创 【微软算法面试高频题】24点游戏
1.题目你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意: 1)除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12。(因此结果为浮点数,列表中存储的数字也都是浮点数。在判断结果是否等于 24 时应考虑精度误差,这道题中,误差小于
2021-07-07 10:56:44 371 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人