2025-3-23 leetcode刷题情况(动态规划)

一、343.整数拆分

1.题目描述

给定一个正整数n,将其拆分为k个正整数 的和(k>=2),并使这些整数的乘积最大化。

返回 你可以获得的最大乘积。

2.代码

3.思路

首先创建一个长度为n + 1的数组dp用于存储每个正整数拆分后的最大乘积,初始化dp[2]为 1 。接着从 3 开始遍历到n,对于每个数i,再遍历从 1 到i - j的数j,考虑两种拆分情况:一是直接将i拆分为ji - j,计算它们的乘积;二是将i拆分为j和可继续拆分的i - j,用j乘以dp[i - j]。取这两种情况的最大值,并更新dp[i]。最终返回dp[n],即n拆分后的最大乘积。

二、96.不同的二叉搜索树

1.题目描述

给你一个整数 n,求恰由 n个节点组成且节点值从 1 到 n互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

2.代码

3.思路

首先创建长度为 n + 1 的数组 dp 存储结果,初始化 dp[0]dp[1] 为 1,分别代表空树和单节点树的情况。接着从 2 到 n 遍历节点数 i,对于每个 i,再从 1 到 i 遍历以不同节点 j 为根的情况。以 j 为根时,左子树有 j - 1 个节点,右子树有 i - j 个节点,根据乘法原理,以 j 为根的不同二叉搜索树数量是 dp[j - 1]dp[i - j] 的乘积,将这些乘积累加更新 dp[i],最终返回 dp[n] 作为结果。

相关推荐
超级码力6662 小时前
【Latex文件架构】Latex文件架构模板
算法·数学建模·信息可视化
穿条秋裤到处跑2 小时前
每日一道leetcode(2026.04.29):二维网格图中探测环
算法·leetcode·职场和发展
Merlos_wind3 小时前
HashMap详解
算法·哈希算法·散列表
汉克老师3 小时前
GESP2025年3月认证C++五级( 第三部分编程题(1、平均分配))
c++·算法·贪心算法·排序·gesp5级·gesp五级
Yzzz-F5 小时前
Problem - 2205D - Codeforces
算法
智者知已应修善业6 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
Halo_tjn6 小时前
Java Set集合相关知识点
java·开发语言·算法
生成论实验室7 小时前
《事件关系阴阳博弈动力学:识势应势之道》第四篇:降U动力学——认知确定度的自驱演化
人工智能·科技·神经网络·算法·架构
AI科技星7 小时前
全域数学·72分册:场计算机卷【乖乖数学】
算法·机器学习·数学建模·数据挖掘·量子计算
科研前沿8 小时前
镜像孪生VS视频孪生核心技术产品核心优势
大数据·人工智能·算法·重构·空间计算