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

安阳网站建设方案贵阳大数据论坛

安阳网站建设方案,贵阳大数据论坛,精品资源共享课程网站建设,wordpress设置访问密码动态规划基础题,当前所在元素来自上一行的两列的值。 题目 从图可以看出,每一行的第一个数与最后一个数都是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.yayakq.cn/news/279895/

相关文章:

  • 成都个人兼职做网站用jsp进行网站开发
  • 郑州做网站助企免费网站怎么盈利模式
  • 手机论坛网站北京免备案网站建设
  • 新加坡网站域名杭州聚翔网络有限公司
  • 怎么做自己的销售网站哪个网站专注做微信模板
  • 响应式网站404页面怎么做网站建设推广价格
  • 网站开发英语虚拟商城平台
  • 进入网站自动全屏怎么做ja.wordpress.org
  • 企业网站数据库表设计yy直播下载电脑版
  • c2c网站都有哪些怎样创建网站赚钱
  • 手机网站建设免费wordpress运行很慢
  • 网站建设工作部署会如何搭建网站教程
  • 增加网站访客做礼品公司网站的费用
  • drupal7建站教程上海高新企业名单查询
  • 谁有网站备案号南昌网站建设行业现状
  • psd简单的网站首页上海招聘网最新招聘信息网
  • 湖南乔口建设公司网站为什么淘宝店主不自己做电商网站
  • 网站建设痛点软件开发工具有哪些基本功能
  • 自已建设网站流程怎么建设宣传网站
  • 网站做seo安全吗photoshop下载免费版
  • 怎么做一直弹窗口网站手机软件开发用什么语言
  • 网站建设相关书籍赣州市开发小程序
  • 个体户可以网站备案吗wordpress中文章
  • win7用本地文件做网站模板网站不显示内容
  • 格力网站的建设情况wordpress菜单小图标不显示
  • 宁波网站建设公司在哪里网页设计代码下载
  • 做网站的流程是怎么样的在线设计制作
  • 电商网站 手续ftp上传php网站
  • 江苏省工程建设协会网站wordpress建站好吗
  • 广州做网站seo二级域名前缀大全