algo
文章平均质量分 75
QingyunAlgo
这个作者很懒,什么都没留下…
展开
-
青云算法面试题干货-杀死进程-LeetCode第582题
题目:给你n个进程,每个进程都有一个唯一的PID(process id)和PPID(parent process id)。每个进程最多只有一个父进程,但可能有多个子进程。如果一个进程的PPID为0,表示它没有父进程。如果一个进程被杀死,那么它的子进程也会被杀死。输入两个相同长度的整数链表,第一个链表是每个进程的PID,第二个链表是对应位置进程的PPID,再输入一个将被杀死的进程的PID,请输出所有...原创 2018-10-09 05:22:12 · 2303 阅读 · 1 评论 -
青云算法面试题干货-翻转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 · 632 阅读 · 0 评论 -
青云算法面试题干货-最短的桥-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 · 869 阅读 · 0 评论 -
青云算法面试题干货-最少的增加次数-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 · 378 阅读 · 0 评论 -
青云算法面试题干货-翻转等价的二叉树-LeetCode第951题
题目:在二叉树中选中一个节点并交换它的左右子树,称之为一个翻转操作。如果一棵二叉树X经过若干次翻转操作之后能够变成二叉树Y,那么二叉树X和Y是翻转等价的。请判断两棵二叉树是不是翻转等价。假设二叉树节点的值唯一。例如,我们翻转下图中左边二叉树节点1、3、5的左右子树,就得到了右边的二叉树,因此它们是翻转等价的。分析:这是LeetCode第951题。按照题目中翻转等价的定义,如果两棵二叉树...原创 2019-01-11 15:32:46 · 351 阅读 · 0 评论 -
青云算法面试题干货-朋友圈-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 · 806 阅读 · 0 评论