一道91%,一道AC,求第一道AC思路
奇安信笔试
第一道 91% 题目要求求进程树,我的思路是用队列存放输入的父节点,a数组放进程,b数组放a的父节点,然后循环遍历b数组。每次遍历b时,如果b中元素==队头元素,a数组中对应元素入队,(结果)sum++;每次遍历完b,出队。
持续上述操作直到队列为空。但是为什么,就是少了9%的数据。
第二道,AC。思路是,不用受题目影响强行用树。用数组保存,然后可以找到输入的数在数组中的下标(为了方便,统一从1开始)。我们可以画一颗树观察一下发现(根节点从下标1开始),每个结点的下标除以2,得到其父节点下标(得到这个就行了)。
大概图是这样(笔试时画的,见谅)
然后我们求输入两个节点在那一层。这种满二叉树很好求层数的。如果不在同一层,层数高的节点,下标不停除以2(相当于不停找父节点)。直到层数一样,观察两个结点下标是否相等,不相等,两个节点再除以2.
#奇安信##笔试题目#