标签:技术 进制 个数 min alt turn 子节点 最长路径 图片
1、给定一个二叉树,找出其最大深度。
注:二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int maxDepth(TreeNode root) { return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; } }
2、给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。
解题思路:
class Solution { public int maximalRectangle(char[][] matrix) { if (matrix.length == 0) { return 0; } //保存以当前数字结尾的连续 1 的个数 int[][] width = new int[matrix.length][matrix[0].length]; int maxArea = 0; //遍历每一行 for (int row = 0; row < matrix.length; row++) { for (int col = 0; col < matrix[0].length; col++) { //更新 width if (matrix[row][col] == ‘1‘) { if (col == 0) { width[row][col] = 1; } else { width[row][col] = width[row][col - 1] + 1; } } else { width[row][col] = 0; } //记录所有行中最小的数 int minWidth = width[row][col]; //向上扩展行 for (int up_row = row; up_row >= 0; up_row--) { int height = row - up_row + 1; //找最小的数作为矩阵的宽 minWidth = Math.min(minWidth, width[up_row][col]); //更新面积 maxArea = Math.max(maxArea, height * minWidth); } } } return maxArea; } }
标签:技术 进制 个数 min alt turn 子节点 最长路径 图片
原文地址:https://www.cnblogs.com/strong-FE/p/11470065.html