diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 5113939..46b8313 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,7 +2,9 @@ - + + + @@ -67,11 +69,11 @@ + - @@ -288,14 +290,7 @@ - - - - 1580235186067 - 1580320003660 @@ -633,7 +628,14 @@ - @@ -686,7 +688,6 @@ - @@ -711,7 +712,8 @@ - @@ -726,10 +728,10 @@ - + - + @@ -784,10 +786,10 @@ - + - + diff --git a/README.md b/README.md index 7bbc887..79c53c7 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ * [q21_合并两个有序链表](/src/递归/q21_合并两个有序链表) * [q101_对称二叉树](/src/递归/q101_对称二叉树) +* [q104_二叉树的最大深度](/src/递归/q104_二叉树的最大深度) * [q226_翻转二叉树](/src/递归/q226_翻转二叉树) * [q236_二叉树的最近公共祖先](/src/递归/q236_二叉树的最近公共祖先) @@ -81,6 +82,7 @@ * [q5_最长回文子串](/src/动态规划/q5_最长回文子串) * [q53_最大子序和](/src/动态规划/q53_最大子序和) +* [q70_爬楼梯](/src/动态规划/q70_爬楼梯) * [q118_杨辉三角](/src/动态规划/q118_杨辉三角) * [q300_最长上升子序列](/src/动态规划/q300_最长上升子序列) * [q746_使用最小花费爬楼梯](/src/动态规划/q746_使用最小花费爬楼梯) diff --git a/src/动态规划/q70_爬楼梯/Solution.java b/src/动态规划/q70_爬楼梯/Solution.java new file mode 100644 index 0000000..528397b --- /dev/null +++ b/src/动态规划/q70_爬楼梯/Solution.java @@ -0,0 +1,20 @@ +package 动态规划.q70_爬楼梯; + +/** + * 动态规划 dp[i]表示到达第i阶的方法总数dp[i]=dp[i−1]+dp[i−2] o(n) + */ +public class Solution { + + public int climbStairs(int n) { + if (n == 1) { + return 1; + } + int[] dp = new int[n + 1]; + dp[1] = 1; + dp[2] = 2; + for (int i = 3; i <= n; i++) { + dp[i] = dp[i - 1] + dp[i - 2]; + } + return dp[n]; + } +} diff --git a/src/递归/q104_二叉树的最大深度/Solution.java b/src/递归/q104_二叉树的最大深度/Solution.java new file mode 100644 index 0000000..ff9949e --- /dev/null +++ b/src/递归/q104_二叉树的最大深度/Solution.java @@ -0,0 +1,17 @@ +package 递归.q104_二叉树的最大深度; + +/** + * 递归 o(n) + */ +public class Solution { + + public int maxDepth(TreeNode root) { + if (root == null) { + return 0; + } else { + int leftHeight = maxDepth(root.left); + int rightHeight = maxDepth(root.right); + return Math.max(leftHeight, rightHeight) + 1; + } + } +} diff --git a/src/递归/q104_二叉树的最大深度/TreeNode.java b/src/递归/q104_二叉树的最大深度/TreeNode.java new file mode 100644 index 0000000..ec216ba --- /dev/null +++ b/src/递归/q104_二叉树的最大深度/TreeNode.java @@ -0,0 +1,11 @@ +package 递归.q104_二叉树的最大深度; + +public class TreeNode { + int val; + TreeNode left; + TreeNode right; + + TreeNode(int x) { + val = x; + } +}