- 博客(18)
- 收藏
- 关注
原创 青云算法面试题干货-朋友圈-LeetCode第547题
问题:假设一个班上有N个同学。同学之间有些是朋友,有些不是。朋友关系是可以传递的。比如A是B的直接朋友,B是C的直接朋友,那么A是C的间接朋友。我们定义朋友圈就是一组直接或间接朋友的同学。输入一个N*N的矩阵M表示班上的朋友关系,如果M[i][j]=1,那么同学i和同学j是直接朋友。请问该班有多少个朋友圈?例如输入如下的数组,则表明同学0和同学1是朋友,他们组成一个朋友圈。而同学2一个人组成一...
2019-01-11 16:02:47 843
原创 青云算法面试题干货-翻转等价的二叉树-LeetCode第951题
题目:在二叉树中选中一个节点并交换它的左右子树,称之为一个翻转操作。如果一棵二叉树X经过若干次翻转操作之后能够变成二叉树Y,那么二叉树X和Y是翻转等价的。请判断两棵二叉树是不是翻转等价。假设二叉树节点的值唯一。例如,我们翻转下图中左边二叉树节点1、3、5的左右子树,就得到了右边的二叉树,因此它们是翻转等价的。分析:这是LeetCode第951题。按照题目中翻转等价的定义,如果两棵二叉树...
2019-01-11 15:32:46 387
原创 青云算法面试题干货-最少的增加次数-LeetCode第945题
题目:给你一个数组A,你选择其中的一个数字,并把它增加1,这就是一次改动。请问至少需要多少次改动,才能使输入的数组的所有数字都变得唯一。假设数组中的数字在0到40000之间。例如,输入数组[3, 2, 1, 2, 1, 7],我们可以通过6次改动使之变成[3, 4, 1, 2, 5, 7],由于不存在少于6次的改动,因此输出6。分析:这是LeetCode第945题。解法一:先排序我们可...
2018-12-02 04:51:37 406
原创 青云算法面试题干货-最短的桥-LeetCode第934题
问题:在一个由0、1组成的二维矩阵里,上下左右四个方向相连的1组成岛屿,而其他0的区域表示海洋。如果在矩阵里有两个岛屿,我们可以修建一座桥把两个岛屿连起来。修建桥的办法是把0翻转成上下左右四个方向相连的1。请问至少需要翻转多少个0才能将两个岛屿连起来?例如,在下面的二维矩阵中,我们只需要翻转坐标为(1, 1)和(2, 1)的两个0,或者坐标为(0, 2)和(1, 2)的两个0,就可以把两个岛屿连起...
2018-11-25 05:14:47 951
原创 青云算法面试题干货-翻转0、1-LeetCode第926题
问题:一个只包含'0'和'1'的字符串如果所有'1'都在'0'的后面,那么它就是单调递增的。给你一个由'0'和'1'组成的字符串,你可以把其中的若干'0'翻转为'1',把若干'1'翻转成'0'。请问最少需要翻转几次,才能把一个'0'、'1'组成的字符串变成单调递增的。例如输入字符串"00110",我们只需要把最后一个字符'0'翻转成'1',就得到单调递增的字符串"00111",因此输出1。分析...
2018-11-14 15:39:09 703
原创 青云算法面试题干货-杀死进程-LeetCode第582题
题目:给你n个进程,每个进程都有一个唯一的PID(process id)和PPID(parent process id)。每个进程最多只有一个父进程,但可能有多个子进程。如果一个进程的PPID为0,表示它没有父进程。如果一个进程被杀死,那么它的子进程也会被杀死。输入两个相同长度的整数链表,第一个链表是每个进程的PID,第二个链表是对应位置进程的PPID,再输入一个将被杀死的进程的PID,请输出所有...
2018-10-09 05:22:12 2403 1
原创 如何利用Career Fair拿到SDE工作面试?
9月,各大高校2018年秋季招聘已全面启动,想找SDE(Software Development Engineer)全职或实习的小伙伴,相信已经感觉到这股浪潮的机会和压力。特别是大多数的国际生,需要在为数不少心仪的公司中还得要求能够sponsor身份,竞争很激烈呀。如果您恰好还是转专业的,那难度系数可想而知。之前文章有提到找工作的三种方式:内推(最好是强推)、CareerFair和网投。作为没有太...
2018-09-21 06:12:33 2800
原创 青云算法面试题干货-Koko吃香蕉-LeetCode第875题
题目:Koko是一只喜欢吃香蕉的大猩猩。现在有N堆香蕉,第i堆有piles[i]个香蕉。管理员现在离开了并且在H(H >= piles.length)小时后回来。Koko可以决定吃香蕉的速度,即每小时吃K个香蕉。每个小时它选择一堆香蕉,并吃掉其中的K个香蕉。如果某一堆里剩下的香蕉少于K个,它会吃完这一堆剩下的所有香蕉,但它这一小时内不会吃更多的其他堆的香蕉。Koko喜欢慢慢地吃香蕉,但又想在...
2018-09-10 11:51:17 2004
原创 【青云求职大助攻】北美秋季校招FLAG实习/全职申请全攻略
又是一年大学开学的日子,机场看到了很多满怀欣喜和希望的莘莘学子们,大家准备去迎接新的求学生活,开始忙着找公寓、选课、交学费、交朋友,而多少人又忽略了即将迎来的秋季招聘。所以,特写下此篇文章,希望让更多地学生赶上这批浪潮。一场北美高校学生都需要参与的竞技赛 每年8月底到12月,是各大IT公司校招的高峰期,招聘岗位和人数全年最多,力度最大。无论是2018年12月或2019年...
2018-09-08 09:39:35 1143
原创 青云算法面试题干货-把人分成两组-LeetCode第886题
题目:有N个人,编号从1到N。现在我们试图把他们分成两组。一个人可能不喜欢某些人,那么这个人和他不喜欢的人不能分到一组。输入一个数组dislikes,数组的第i项dislikes[i] = [a, b]表示编号为a的人不喜欢编号为b的人,因此他们不能分到同一组。请根据dislikes关系判断输入的N个人能否分到两个组里?分析:这是LeetCode第886题。要想解决这个问题,首先我们要发现...
2018-08-27 09:09:03 1323
原创 青云算法面试题干货-公交线路-LeetCode第815题
问题:给我们一个公交线路列表,列表的每条线路routes[i]是一个表示停靠站序号的数组,每条线路都是循环线路。例如,如果routes[0]=[1, 5, 7],这条线路停靠站的顺序是1->5->7->1>5->7->1…。如果从序号为S的站出发,想去序号为T的站,请问至少坐几条线路的公交车才能到达目的地。如果不可能到达目的地,返回-1。例如,routes = ...
2018-08-15 15:56:43 1345
原创 青云算法面试题干货-最少交换次数-LeetCode第801题
问题:给定两个长度相同的数组A和B,我们可以交换两个数组中下标相同的两个数字A[i]和B[i]。假设输入的两个数组在交换若干次之后,一定能变成严格递增的数组。输入两个数组,请问至少需要交换多少次使得两个数组都变成严格递增的?例如输入数组A = [1, 3, 5, 4],B = [1, 2, 3, 7]。如果交换A[3]和B[3],得到A = [1, 3, 5, 7],B = [1, 2, 3,...
2018-08-12 23:55:22 1528
原创 青云算法面试题干货-最长斐波那契序列-LeetCode第873题
问题:给你一个严格单调递增的数组,请问数组里最长的斐波那契序列的长度是多少?例如,如果输入的数组是[1, 2, 3, 4, 5, 6, 7, 8],由于其中最长的斐波那契序列是1, 2, 3, 5, 8,因此输出应该是5。分析:这是LeetCode的第873题。 在斐波那契序列中,第n个数字等于第n-1个数字与第n-2个数字之和。我们考虑以数组中第i个数字(记为A[i])为结尾的最长斐...
2018-08-06 02:00:14 440
原创 青云算法面试题干货-字符串的子串-LeetCode第792题
问题:输入一个字符串S和一个字符串数组words,请问words中有多少个字符串是S的子序列?假设所有字符串都只含有小写英文字母。例如输入字符串S为"abcde",字符串输入words为["a", "bb", "acd", "ace"]。words中有三个字符串"a"、"acd"和"ace"都是S的子序列,因此正确的输出是3。分析:这是LeetC
2018-07-29 00:55:45 642
原创 青云算法面试题干货-开密码锁-LeetCode第752题
问题:给你一个包含四个环形转轮的密码锁,每个转轮上10个格子对应从'0'到'9'的10个数字。这些转轮可以向两个方向自由转动,也就是可以从'0'转到'9',也可以从'9'转到'0'。每一步你只可以转一个转轮一格。这个密码锁还有一些死锁状态(输入的deadends),当四个转轮的密码转入这些状态时这个锁就再也打不开了。假设这个锁的初始状态是"0000",给你一个目标状态target,请问你至少需要多...
2018-06-06 05:28:49 3066 2
原创 青云算法面试题干货-相似的字符串组-LeetCode第839题
问题:如果交换字符串X中的两个字符能得到字符串Y,那么两个字符串X和Y相似。例如,字符串"tars"和"rats"相似(交换下标0和2的两个字符)、字符串"rats"和"arts"相似(交换下标0和1的字符),但字符串"star"和"tars"不相似。输入一个字符串数组,根据字符串的相似性分组,请问能把输入数组分成几组?例如,输入数组["tars","ra
2018-05-30 04:20:55 1259
原创 青云算法面试题干货-生成最大的岛屿-LeetCode第827题
问题:输入一个由数字0或1组成的二维数组,其中0表示海洋,而水平或竖直方向连通的1组成的区域为岛屿。岛屿的面积为组成岛屿的1的数目。如果最多能把数组中的一个0变成1,请问能得到的最大的岛屿的面积是多少?例如,输入数组[[1, 0], [0, 1]],把其中任意一个0变成1都能将已有的两个面积为1的岛屿连接起来,形成一个面积为3的岛屿。分析:这是LeetCode的第827题。 另一个经典...
2018-05-26 03:00:44 994
原创 青云算法面试题干货-连续整数的和-LeetCode第829题
问题:输入一个整数N,请问有多少种不同的方法把若干个连续的整数相加使得它们的和为N?例如输入N=9,由于9 = 9、9 = 4 + 5、9 = 2 + 3 + 4,因此正确的输出是3。分析:这是LeetCode的第829题。 解法一:时间复杂度O(n)想象有一个整数数组,数组里的第一个数字是1,第二个数字是2,以后的数字以此类推。再假设有两个指针,第一个指针初始化指向数组的第一个数...
2018-05-26 02:54:01 616
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人