530. Minimum Absolute Difference in BST

xiaoxiao2021-02-28  98

欢迎关注我的leetcode习题解答集,不断完善中,希望可以带给你帮助,共同进步 leetcode习题解答集


可以对照563. Binary Tree Tilt

超时了,思路是把树种的值全部取出来放在list中,然后处理 class Solution(object): def getMinimumDifference(self, root): """ :type root: TreeNode :rtype: int """ self.l = [] def get(node): if not node: pass else: self.l.append(node.val) get(node.left) get(node.right) get(root) print self.l min_c = 10000 for i in range(len(self.l)): for j in range(len(self.l)): if i != j: if abs(self.l[i]-self.l[j]) < min_c: min_c = abs(self.l[i]-self.l[j]) return min_c 不是很懂什么叫做BST,可以参考这篇文章BST树,原来这个树是已经排好序的;这样比较起来会快很多 class Solution(object): def getMinimumDifference(self, root): """ :type root: TreeNode :rtype: int """ def get(node): return get(node.left)+[node.val]+get(node.right) if node else [] min_c = 1000000 l = get(root) for i in range(len(l)-1): if min_c > abs(l[i]-l[i+1]): min_c = abs(l[i]-l[i+1]) return min_c for i in range(len(l)-1): if min_c > abs(l[i]-l[i+1]): min_c = abs(l[i]-l[i+1]) return min_c

可以替换成

return min(abs(l[i]-l[i+1]) for i in range(len(l)-1))

这种精简的写法值得学习

转载请注明原文地址: https://www.6miu.com/read-22136.html

最新回复(0)