第二题 Tree IV 使用Python只通过40%的解法,求解惑
Python
第二题为什么始终通不过测试呢,百思不得其解,希望有大佬能够解惑
我的思路是先寻找输入值n对应的最大深度deep,通过连续除2取整,计算直到为0时一共计算的次数可求得
然后遍历每一层深度,因为每一层的深度值相同,结点编号连续,只需要将这一连续结点值加起来乘以深度值即可
遍历到最后一层时,结点值以输入n值结束
题目中的测试用例都是通过了的,但最后提交的时候只通过了40%
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # @param n long长整型 表示标准完全二叉树的结点个数 # @return long长整型 # class Solution: def tree4(self , n ): # write code here value = 0 deep = 0 m = n while n>0: n = n//2 deep +=1 for i in range(1, deep + 1): if i!=deep: value += sum(range(2**(i-1), 2**i))*i else: value += sum(range(2**(i-1), m+1))*i return value while True: try: n = int(input()) print(Solution().tree4(n)) except: break