哪里做网站比较快,做国内打不开的网站吗,关键字挖掘,做动画 的 网站有哪些软件刷题顺序及思路来源于代码随想录#xff0c;网站地址#xff1a;https://programmercarl.com
343. 整数拆分 - 力扣#xff08;LeetCode#xff09;
给定一个正整数 n #xff0c;将其拆分为 k 个 正整数 的和#xff08; k 2 #xff09;#xff0c;并使这些整… 刷题顺序及思路来源于代码随想录网站地址https://programmercarl.com
343. 整数拆分 - 力扣LeetCode
给定一个正整数 n 将其拆分为 k 个 正整数 的和 k 2 并使这些整数的乘积最大化。
返回 你可以获得的最大乘积 。
输入: n 2
输出: 1
解释: 2 1 1, 1 × 1 1。
import java.util.Scanner;/*** author light* Description 整数拆分* create 2023-09-14 18:19*/
public class IntegerBreakTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();System.out.println(integerBreak(n));}public static int integerBreak(int n) {//dp[i] 为正整数 i 拆分后的结果的最大乘积int[] dp new int[n1];dp[2] 1;for(int i 3; i n; i) {for(int j 1; j i-j; j) {// 这里的 j 其实最大值为 i-j,再大只不过是重复而已//并且在本题中我们分析 dp[0], dp[1]都是无意义的//j 最大到 i-j,就不会用到 dp[0]与dp[1]dp[i] Math.max(dp[i], Math.max(j*(i-j), j*dp[i-j]));// j * (i - j) 是单纯的把整数 i 拆分为两个数 也就是 i,i-j 再相乘//而j * dp[i - j]是将 i 拆分成两个以及两个以上的个数,再相乘。}}return dp[n];}
}96. 不同的二叉搜索树 - 力扣LeetCode
给你一个整数 n 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种返回满足题意的二叉搜索树的种数。 /*** author light* Description 不同的二叉搜索树** create 2023-09-14 18:49*/
public class NumTreesTest {public int numTrees(int n) {//1 确认dp数组及其含义dp[i]:输入【i】共有dp[i]种不同的二叉搜索树//也可以理解是i个不同元素节点组成的二叉搜索树的个数为dp[i] 都是一样的。//dp[i] dp[以j为头结点左子树节点数量] * dp[以j为头结点右子树节点数量]//j相当于是头结点的元素从1遍历到i为止。int[] dpnew int[n1];dp[0]1;for (int i 1; i n; i) {for (int j 1; j i; j) {dp[i]dp[j-1]*dp[i-j];}}return dp[n];}
}