当前位置: 首页 > news >正文

做外贸铝材哪个网站比较好seo整站优化外包公司

做外贸铝材哪个网站比较好,seo整站优化外包公司,网页设计实训总结200,12306网站是是阿里巴巴做的吗题目与题解 343. 整数拆分 题目链接:343. 整数拆分 代码随想录题解:343. 整数拆分 视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili 解题思路: 一眼懵…

题目与题解

343. 整数拆分

题目链接:343. 整数拆分

代码随想录题解:343. 整数拆分

视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili

解题思路:

        一眼懵,直接看答案了

看完代码随想录之后的想法 

        前一天的题是由dp[i-2]和dp[i-1],递推出当前结果dp[i]。这题更复杂一些,是要根据dp[0]到dp[i-1],推算dp[i]的结果。

        对于数字i,可以分解为两个数字的和:j和i-j,因此求分解i的乘积,就是求j和分解i-j之后二者的乘积。那么如果dp[i]定义为数字i的最大乘积和,那么对于dp[i],遍历j from 1 to i - 1, 递推公式为求dp[i-j]*j和j * (i - j) 中的最大值。

        为避免重复计算,j最多取到i的一半。

class Solution {public int integerBreak(int n) {int[] dp = new int[n+1];if (n >= 2) dp[2] = 1;for (int i = 3; i <= n; i++) {for (int j = 1; j <= i/2; j++) {dp[i] = Math.max(dp[i], Math.max(j*(i-j), dp[i-j]*j));}}return dp[n];}
}

j怎么就不拆分呢?

j是从1开始遍历,拆分j的情况,在遍历j的过程中其实都计算过了。那么从1遍历j,比较(i - j) * j和dp[i - j] * j 取最大的。递推公式:dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j));

也可以这么理解,j * (i - j) 是单纯的把整数拆分为两个数相乘,而j * dp[i - j]是拆分成两个以及两个以上的个数相乘。

如果定义dp[i - j] * dp[j] 也是默认将一个数强制拆成4份以及4份以上了。

所以递推公式:dp[i] = max({dp[i], (i - j) * j, dp[i - j] * j});

 还需要注意,初始化的方式是跟着定义走的,如果求的是max(dp[i - j] * dp[j]),为了计算正确,初始化的结果会跟dp[i]定义不符,容易出错。

遇到的困难

        第一次碰到这种题,想不到

96.不同的二叉搜索树 

题目链接:96.不同的二叉搜索树 

代码随想录题解:​​​​​​​96.不同的二叉搜索树 

视频讲解:动态规划找到子状态之间的关系很重要!| LeetCode:96.不同的二叉搜索树_哔哩哔哩_bilibili

解题思路:

        这题跟上面一题有一点类似,同样是要用多个dp[i-j]的值推出dp[i]。

        题目要求用1-n的数字构成不同的二叉搜索树,其实可以分解为,0-j-1的数字构成左子树,j为根节点,j到i构成右子树,那么

dp[i] = \sum_{1}^{i}dp[j-1]*dp[i-j]

        初始化dp[0]=dp[1]=0即可。

class Solution {public int numTrees(int n) {int[] dp = new int[n+1];dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; i++) {for (int j = 1; j <= i ; j++) {dp[i] += dp[j-1] * dp[i-j];}}return dp[n];}
}

看完代码随想录之后的想法 

        以dp[3]为例

dp[3],就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索树的数量 + 元素3为头结点搜索树的数量

元素1为头结点搜索树的数量 = 右子树有2个元素的搜索树数量 * 左子树有0个元素的搜索树数量

元素2为头结点搜索树的数量 = 右子树有1个元素的搜索树数量 * 左子树有1个元素的搜索树数量

元素3为头结点搜索树的数量 = 右子树有0个元素的搜索树数量 * 左子树有2个元素的搜索树数量

关键是看如何去分解,分解后如何正确确定遍历的上下限。

遇到的困难

        一开始写的时候没有想清楚遍历的边界,初始化的时候也有点糊涂,所以错了好几处。要记住按定义初始化dp,然后确定遍历上下界后,最好通过几个举例得到结果,保证边界正确。        

今日收获

        学会了如何用分解的方法使用dp,难度提升了很多。

http://www.hrbkazy.com/news/10589.html

相关文章:

  • 云南网站建设找三好科技班级优化大师手机版下载(免费)
  • 网站语言那种好巨量引擎广告投放平台代理
  • 想在中国网站做海外代购镇江网站建设推广
  • 福建省华荣建设集团有限公司网站网络服务提供商是指
  • 网站大图轮播seo博客网址
  • 周口seo什么是seo标题优化
  • 专门做自助游的网站百度seoo优化软件
  • 建官网个人网站百度推广账号登录入口
  • 旅游网站的设计方案怎么做天猫seo搜索优化
  • 爱站网长尾关键词挖掘网站管理系统
  • 网站建设项目进展情况汇报外贸推广引流
  • 长沙企业网站建设品牌今日深圳新闻最新消息
  • 做个响应式网站多少钱阿里云免费域名
  • 云南公路建设市场网站企业建站用什么好
  • 立邦刷新服务多少钱一平米优化关键词排名软件
  • 仙居网站建设合肥关键词排名提升
  • 工业品企业网站源码收录网站排名
  • 怎样修改手机网站首页seo从0到1怎么做
  • 做公司网站 找谁做最常见企业网站公司有哪些
  • 哪有网站给光头强做面品牌推广活动方案
  • wordpress标签搜索优化教程网下载
  • 网站人员队伍建设落后云南网站建设百度
  • 网站系统建设方案西安危机公关公司
  • 免费空间注册网站网络营销理论基础
  • 淘宝客网站开发一个百度营销推广登录
  • 做商城网站买多大的空间成品网站1688入口的功能介绍
  • 制作网站注册页面模板网站制作策划
  • 好的策划方案网站免费seo技术教程
  • 域名备案查询网站备案信息查询十大经典营销案例
  • 人工智能网站开发建一个网站需要多少钱?