Jan 6, 2020 ~ Jan 12, 2020
Problem 108 Convert Sorted Array to Binary Search Tree (将有序数组转化为二叉搜索树) 题目链接
题目描述:给定一个有序数组,将其转换为一个高度平衡的二叉搜索树。高度平衡:对于树中任一结点,其左子树和右子树的高度不大于1。二叉搜索树:对于树中任一结点,其左子树所有结点的值小于等于该结点的值,其右子树所有结点的值大于等于该结点的值。例如给定数组为 [-10,-3,0,5,9],得到的高度平衡的二叉搜索树如下:
0
/ -3 9
/ /
-10 5
思路为:因为题目要求高度平衡,那么说明左右子树结点数目应该相近,同时要求是高度平衡和二叉搜索树都是递归的定义,且给定的是一个有序数组,不难想到使用递归。递归的初始条件便是:数组中没有元素或者只有一个元素,没有元素返回 None 即可,只有一个元素,则用该元素的值构建一个树结点即可。若多于一个元素,可以用 nums[len(nums)//2] 构建根节点,之后用 nums[0: len(nums)//2] 和 nums[len(nums)//2+1: len(nums)] 分别构建左右子树。
通过的代码如下
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
if len(nums) == 0:
return None
if len(nums) == 1:
node = TreeNode(nums[0])
return node
node = TreeNode(nums[len(nums)//2])
node.left = self.sortedArrayToBST(nums[0: len(nums)//2])
node.right = self.sortedArrayToBST(nums[len(nums)//2+1: len(nums)])
return node
本周继续 Review 每个程序员需要知道的97件事(英文名:97 Things Every Programmer Should Know)。原文链接。下面是本周的5个小内容:
Python中字符串方法str.ljust(),str.rjust(),str.center(),str.strip(),str.lstrip(),str.rstrip()的功能分别如下:
s0 = 'hello'
s11 = s0.ljust(10)
s12 = s0.ljust(10,'!')
s21 = s0.rjust(10)
s22 = s0.rjust(10,'!')
s31 = s0.center(10)
s32 = s0.center(10,'!')
print('s0 = ',s0)
print('s11 = ',s11)
print('s12 = ',s12)
print('s21 = ',s21)
print('s22 = ',s22)
print('s31 = ',s31)
print('s32 = ',s32)
print('s12.lstrip() = ',s12.lstrip('!'))
print('s12.rstrip() = ',s12.rstrip('!'))
print('s22.lstrip() = ',s22.lstrip('!'))
print('s22.rstrip() = ',s22.rstrip('!'))
print('s32.strip() = ',s32.strip('!'))
print('s32.strip() = ',s32.strip())
'''
输出结果如下:
s0 = hello
s11 = hello
s12 = hello!!!!!
s21 = hello
s22 = !!!!!hello
s31 = hello
s32 = !!hello!!!
s12.lstrip() = hello!!!!!
s12.rstrip() = hello
s22.lstrip() = hello
s22.rstrip() = !!!!!hello
s32.strip() = hello
s32.strip() = !!hello!!!
'''
在 Review 部分中,提到技术异常和业务异常的区别,作为程序员,找到的技术异常比业务异常容易不少,但是业务异常同样值得关注,如果不慎就会带来巨大的损失。
原文:https://www.cnblogs.com/mengxinayan/p/12288029.html