Day 33
第54题:
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。来源:力扣(LeetCode)
示例 1:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]
1、按螺旋顺时针返回矩阵的元素,可以设置矩阵上下左右的边界来判断是否转向;
例如在第一行时,一直向左,当列数大于matrix.length长度时,转向;
固定在此列,开始从第一行开始向最后一行遍历,当行数大于matrix[0]的长度时,转向;
这时候就固定在这一行,从最后一列向第一列遍历,指定条件下转向;
每次在遍历完某行或者某列时,将各自对应的边界向内收缩一层;
最后当各自两边的边界重合后,就代表遍历结束,返回结果。
(当然也可以使用矩阵内的元素来作为限定条件)
第112题:
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
说明: 叶子节点是指没有子节点的节点。来源:力扣(LeetCode)
1、判断是否根节点到叶子节点的路径和等于目标值sum;
其实也就相当于树中是否存在节点(node1)到任意叶子节点的路径和等于目标值sum减去根节点到这个节点(node)的路径和;
其实是一个递归的过程;
2、也可以用广度优先遍历将根节点到树里面的每个节点的路径和求出来;
再判断这些路径和里是否有和目标值相同的;
返回结果。