「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战」
导读
肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。我们先来搞一下让大家最头疼的一类算法题,动态规划我们将进行为时21天的养成计划。还在等什么快来一起肥学进行动态规划21天挑战吧!!
21天动态规划入门
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
1 | java复制代码示例 1: |
1 | java复制代码示例 2: |
1 | java复制代码 |
在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。
1 | java复制代码示例 1: |
1 | java复制代码示例 2: |
1 | java复制代码示例 3: |
1 | java复制代码可以使用动态规划降低时间复杂度。我们用 \textit{dp}(i, j)dp(i,j) 表示以 (i, j)(i,j) 为右下角,且只包含 11 的正方形的边长最大值。如果我们能计算出所有 \textit{dp}(i, j)dp(i,j) 的值,那么其中的最大值即为矩阵中只包含 11 的正方形的边长最大值,其平方即为最大正方形的面积。 |
面试题
这次讲一下关于二叉树的面试必备知识;
构建一个node对象:
1 | java复制代码public class node { |
求⼆叉树的最⼩深度
1 | java复制代码 |
本文转载自: 掘金