LeetCode96. 不同的二叉搜索树
题目
https://leetcode-cn.com/problems/unique-binary-search-trees/
思路
可以采用分治的思想:将原问题拆分为各种子问题,逐一求解子问题并合并子问题的解,从而得到原问题的解
分治一般伴随着递归。
分治最主要的是要想方设法合并子问题的解,也就是使用具体的数据结构进行数据记录,不要陷入具体的递归细节。
代码
class Solution {
public int numTrees(int n) {
int sum = 0;
if (n == 0) return 1;
if (n <= 2) return n;
for (int i = 1; i <= n; i++) {
sum += numTrees(i - 1) * numTrees(n - i);
}
return sum;
}
}
本文作者:mirage_mc
本文链接:https://www.cnblogs.com/mirage-mc/p/15823668.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步