算法练习----力扣每日一题------5

原题链接

894. 所有可能的真二叉树 - 力扣(LeetCode)

题目解析

        给一个整数,返回所有可能的真二叉树vector<TreeNode*>类型,每棵树的val都必须为0

        真二叉树:每个节点都有零个或两个元素


解题思路

        要求一个含有n个节点的真二叉树,可以直接从根节点往下递归,也可以先求出一些较小数字对应的二叉树,再由较小的二叉树拼接成大叉树。

从思路上,显然第二种方法更好写一些,不过它会需要使用更多的内存空间。我这边使用的是第二种写法。

dp数组用来存放从1到n(奇数)的全部合法返回值

class Solution {
public:
	vector<TreeNode*> allPossibleFBT(int n) {
		vector<vector<TreeNode*>>dp(n + 1);
		dp[1] = { new TreeNode(0)};
		for (int i = 1; i <= n; i += 2)
		{
			for (int j = 1; j < i; j += 2) {
				for (auto left : dp[j])
				{
					for (auto right : dp[i - j - 1])
					{
						TreeNode* tmp = new TreeNode();
						tmp->left = left;
						tmp->right = right;
						dp[i].push_back(tmp);
					}
				}
			}
		}
		return dp[n];
	}
};

关于时间复杂度和空间复杂度

        我看了几个题解,大伙差不多的解法算出来的不怎么统一,我水平不算高,就不在这班门弄斧了,(ps:力扣官方给的空间复杂度是o(1),这光dp里就有n+1个vector,属实是离谱了)。

感谢观看!!!!

相关推荐

  1. 算法练习----每日------5

    2024-04-03 00:32:03       38 阅读
  2. 算法练习----每日------1

    2024-04-03 00:32:03       48 阅读
  3. 算法练习----每日------2

    2024-04-03 00:32:03       29 阅读
  4. 算法练习----每日------3

    2024-04-03 00:32:03       40 阅读
  5. 算法练习----每日------6

    2024-04-03 00:32:03       36 阅读
  6. 算法练习----每日------4

    2024-04-03 00:32:03       42 阅读
  7. 算法练习----每日------7

    2024-04-03 00:32:03       42 阅读
  8. 每日 6/5

    2024-04-03 00:32:03       31 阅读
  9. 每日

    2024-04-03 00:32:03       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 00:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 00:32:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 00:32:03       82 阅读
  4. Python语言-面向对象

    2024-04-03 00:32:03       91 阅读

热门阅读

  1. 代码随想录Day42

    2024-04-03 00:32:03       35 阅读
  2. 这样学习Oracle,让你少走弯路,实现弯道超车

    2024-04-03 00:32:03       35 阅读
  3. pandas

    2024-04-03 00:32:03       39 阅读
  4. 几种常见的路径规划算法

    2024-04-03 00:32:03       38 阅读
  5. 遗传算法(matlab)

    2024-04-03 00:32:03       39 阅读
  6. 正则表达式

    2024-04-03 00:32:03       38 阅读
  7. 学习鸿蒙基础(11)

    2024-04-03 00:32:03       28 阅读
  8. C# FTP的使用

    2024-04-03 00:32:03       29 阅读
  9. 力扣之每日四题day01--二叉树遍历篇

    2024-04-03 00:32:03       40 阅读
  10. 扫雷(c++实现)

    2024-04-03 00:32:03       41 阅读