题目1
解法1:
class Solution:
def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
if not preorder:
return None
root = TreeNode(preorder[0])
loc = inorder.index(preorder[0])
root.left = self.buildTree(preorder[1 : loc + 1], inorder[ : loc])
root.right = self.buildTree(preorder[loc+1 : ], inorder[loc+1: ])
return root
题目2
题解2
class Solution:
def angleClock(self, hour: int, minutes: int) -> float:
hour_angle = (hour%12)*30 + (minutes/60)*30
minutes_angle = minutes/60*360
return min(abs(hour_angle - minutes_angle), 360-abs(hour_angle - minutes_angle))
题目3
题解3
class Solution:
def smallestRangeI(self, A: List[int], K: int) -> int:
"""
A中的最大值-A中的最小值-2*k,因为为了最小差,只能将最大值-k ,最小值+k,如果最大值任大于最小值,
则不够减,返回这个值,如果最大值任小于等于最小值,则在[-k,k]够减,返回0即可
"""
return max(max(A) - min(A) - 2*K, 0)
附上题目链接:
题目1链接
题目2链接
题目3链接