定义一个辅助函数
10年积累的成都网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有凤县免费网站建设让你可以放心的选择与我们合作。
返回:是不是合法的二叉搜索树,最大值,最小值
然后递归调用
根树的返回值第一个元素就是答案
def prime(n):
if n=2:
return []
result=[False,False]+[True]*(n-2)
for i in range(len(result)):
if result[i]==True:
for j in range(2*i,len(result),i):
result[j]=False
return [i for i in range(len(result)) if result[i]==True]
def bi_search(prime,primelist,start,end):
if startend :
return -1
mid=(start+end)//2
if primelist[mid]==prime:
return mid
elif primelist[mid]prime:
end=mid-1
else:
start=mid+1
return bi_search(prime,primelist,start,end)
if __name__=='__main__':
n=int(raw_input())
primelist=prime(n)
num=raw_input()
while num:
num=int(num)
index=bi_search(num,primelist,0,len(primelist)-1)
print(index)
num=raw_input()
基本算法就是二叉树的遍历,首先想到的是深度优先遍历。
难点在于,如何实现每个子路径的记录和append
binaryTreePaths函数只给了root变量,无法存储每个子路径,考虑写辅助函数res,添加存储路径的变量
res(root,temp)
同时还需要一个全局变量result存储最后的输出结果,result.append(temp)
难度:★☆☆☆☆
类型:二叉树
给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。
注意
二叉树的大小范围在 2 到 100。
二叉树总是有效的,每个节点的值都是整数,且不重复。
示例
输入: root = [4,2,6,1,3,null,null]
输出: 1
解释:
注意,root是树结点对象(TreeNode object),而不是数组。
给定的树 [4,2,6,1,3,null,null] 可表示为下图:
最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。
二叉搜索树有一个重要的性质: 二叉搜索树的中序遍历是升序序列。 因此我们可以通过将二叉搜索树序列化,然后计算最小相邻元素差。
另一种解法,我们可以在中序遍历的同时记录最小差值:
如有疑问或建议,欢迎评论区留言~