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

昆明网站建设_云南网站建设百度竞价排名一年费用

昆明网站建设_云南网站建设,百度竞价排名一年费用,HTTPS网站做CDN,潍坊方圆网站建设动态规划基础题,当前所在元素来自上一行的两列的值。 题目 从图可以看出,每一行的第一个数与最后一个数都是1,然后中间的数是来自它左上方和右上方的数的和。当然并不是要打印这个三角形的形状,因此可以想到正常的打印方式应该是…

动态规划基础题,当前所在元素来自上一行的两列的值。

题目

从图可以看出,每一行的第一个数与最后一个数都是1,然后中间的数是来自它左上方和右上方的数的和。当然并不是要打印这个三角形的形状,因此可以想到正常的打印方式应该是从每一行的左边往右边打的,默认的打印与循环的三角形的每一行每一列应该是这样的。

1
1 2 1
1 3 3 1
1 4 6 4 1

从这里就可以开始写循环遍历了,用外循环i去控制行,然后用j表示每一行的每一列即每个元素,可以看到排除首尾是1的情况,就是当前数由上方跟左上方得来,不需要右上方,按这个排列的图找规律。然后排去首尾特殊的数,还发现到,每一行需要dp的数量跟当前行号是一致的,注意这里的行号从0开始,即第一行有一个数为2,第二行有两个数3、3等等。然后就可以依照这些规律写dp了,这里用了嵌套动态数组去加每一行每一列,里面的数组对应每一行的数组,然后外层即一个大的list了。

状态转移方程为:dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j],这里的get是用来读取arraylist的值。

时间复杂度:O(numRows^2),空间复杂度:O(1)。

class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> res = new ArrayList<List<Integer>>();for (int i = 0; i < numRows; i++) {List<Integer> row = new ArrayList<Integer>();for (int j = 0; j <= i; j++) {  //每一行的数量是行号if (j == 0 || j == i) {row.add(1);//每一行的首尾} else {row.add(res.get(i - 1).get(j - 1) + res.get(i - 1).get(j));//由上一个跟上一个的附近一个得来}}res.add(row);//加入每一行}return res;}
}

动态规划找规律写状态转移方程还是很重要的。

http://www.dinnco.com/news/4536.html

相关文章:

  • 网站建设公司的优势360推广登录平台
  • 如何用.net做网站品牌策划方案范文
  • 北京网站建设联系电话肇庆疫情最新消息
  • 网站备案 做网站时就需要吗今天发生的重大新闻5条
  • 做社交网站免费seo软件推荐
  • 昆明网站设计公司哪家好小程序开发流程详细
  • 人工做流量的网站长沙网站优化公司
  • 做360网站优化快速最好用的磁力搜索器
  • 马鞍山网站建设怎样推广一个产品
  • 做整形网站多少钱郴州网络推广公司排名
  • 萍乡公司做网站内蒙古seo
  • 网站建设细化流程百度推广登录网址
  • 网站开发是什么汕头seo代理商
  • 号网站开发重庆疫情最新消息
  • 五星级酒店网站建设方案国外seo
  • 南通网站建设优化营销活动策划方案
  • 哪个网站有收藏加购做积分任务网店推广方式
  • wordpress社交游戏seo去哪里学
  • 网站需要维护吗交换链接是什么
  • 图书馆网站开发的前期准备企业管理培训公司排行榜
  • 网站开发的作用邯郸网站建设优化
  • 湖南省网站备案怎么在百度做免费推广
  • 手机网站知识军事新闻头条最新消息
  • 列车营销网站怎么做百度关键词点击工具
  • 微商网站开发免费隐私网站推广
  • 烟台建设企业网站二手交易平台
  • mstsc做网站网站seo排名培训
  • 做建设网站的活的兼职重庆可靠的关键词优化研发
  • 网站站点怎么做外贸网站谷歌seo
  • 服装市场调网站建设的目的女教师遭网课入侵视频大全播放