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

html5的网站中山百度seo排名公司

html5的网站,中山百度seo排名公司,重庆电子工程职业学院校园网绑定,网站模版是什么意思优质博文:IT-BLOG-CN 一、题目 给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[…

优质博文:IT-BLOG-CN

一、题目

给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

示例 1:
在这里插入图片描述

输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
输出:7
解释:因为路径1→3→1→1→1的总和最小。

示例 2:

输入:grid = [[1,2,3],[4,5,6]]
输出:12

m == grid.length
n == grid[i].length
1 <= m, n <= 200
0 <= grid[i][j] <= 200

二、代码

动态规划

状态定义:设 dp 为大小 m×n 矩阵,其中 dp[i][j] 的值代表直到走到 (i,j) 的最小路径和。

转移方程:题目要求,只能向右或向下走,换句话说,当前单元格 (i,j) 只能从左方单元格 (i−1,j) 或上方单元格 (i,j−1) 走到,因此只需要考虑矩阵左边界和上边界。

走到当前单元格 (i,j) 的最小路径和 = “从左方单元格 (i−1,j) 与 从上方单元格 (i,j−1) 走来的 两个最小路径和中较小的 ” + 当前单元格值 grid[i][j] 。具体分为以下 4 种情况:
当左边和上边都不是矩阵边界时: 即当i!=0, j!=0时,dp[i][j]=min(dp[i−1][j],dp[i][j−1])+grid[i][j] ;
当只有左边是矩阵边界时: 只能从上面来,即当i=0,j!=0时, dp[i][j]=dp[i][j−1]+grid[i][j] ;
当只有上边是矩阵边界时: 只能从左面来,即当i!=0,j=0时, dp[i][j]=dp[i−1][j]+grid[i][j] ;
当左边和上边都是矩阵边界时: 即当i=0,j=0时,其实就是起点, dp[i][j]=grid[i][j];

初始状态:dp 初始化即可,不需要修改初始 0 值。

返回值:返回 dp 矩阵右下角值,即走到终点的最小路径和。
其实我们完全不需要建立 dp 矩阵浪费额外空间,直接遍历 grid[i][j] 修改即可。这是因为:grid[i][j] = min(grid[i - 1][j], grid[i][j - 1]) + grid[i][j] ;原 grid 矩阵元素中被覆盖为 dp 元素后(都处于当前遍历点的左上方),不会再被使用到。

class Solution {public int minPathSum(int[][] grid) {for(int i = 0; i < grid.length; i++) {for(int j = 0; j < grid[0].length; j++) {if(i == 0 && j == 0) continue;else if(i == 0)  grid[i][j] = grid[i][j - 1] + grid[i][j];else if(j == 0)  grid[i][j] = grid[i - 1][j] + grid[i][j];else grid[i][j] = Math.min(grid[i - 1][j], grid[i][j - 1]) + grid[i][j];}}return grid[grid.length - 1][grid[0].length - 1];}
}

时间复杂度 O(M×N) 遍历整个grid矩阵元素。
空间复杂度 O(1) 直接修改原矩阵,不使用额外空间。

空间复杂度可以优化到原地工作,也就是O1,但是会破坏原矩阵的数据。通过分析可以发现,数据在扫描矩阵的时候,原数据信息只在扫描的时候用到一次,后续便不会再使用,所以扫描写dp的时候,可以直接进行覆盖,而不会影响最终的结局。也就是利用了系统为grid分配的内存进行记录动态规划的dp。下面贴上代码(代码写的烂,如果有人读到了,还请见谅)

#define min(x,y) ((x) > (y)) ? (y) : (x)int minPathSum(int** grid, int gridSize, int* gridColSize){unsigned char i,j;for(j = 1; j < *gridColSize;j++)      grid[0][j] += grid[0][j-1];for(i = 1; i < gridSize;i++)          grid[i][0] += grid[i-1][0];for(i = 1; i < gridSize; i++)for(j = 1; j < *gridColSize;j++ ) grid[i][j] += min(grid[i-1][j],grid[i][j-1]);return grid[gridSize-1][*gridColSize-1];
}
http://www.hkea.cn/news/239297/

相关文章:

  • 网站建设服务怎么样近期国内热点新闻事件
  • 阿里巴巴网站国际站建设seo托管服务
  • 企业网站优化之如何做需求分析网奇seo赚钱培训
  • 施工企业会计制度收入确认规定百度自然排名优化
  • 校园网站建设意义网络营销的特点有哪些
  • 内江做网站哪里便宜google搜索关键词热度
  • 福建省建设银行招聘网站网络推广员压力大吗
  • 动态网站订单怎么做搜索引擎优化营销
  • html5行业网站最近有哪些新闻
  • 做网站业务的怎么寻找客户在哪里打广告效果最好
  • 广东深圳seo服务内容
  • 做网站怎么备案网络服务有限公司
  • 网站主页特效欣赏百度官网下载电脑版
  • php mysql开发网站开发任何小说都能搜到的软件
  • the7 wordpress主题宁波seo外包费用
  • 云南建筑培训网seo刷点击软件
  • 男女做暖网站h5页面制作平台
  • 可以做puzzle的网站百度关键词排名提升工具
  • 竞网网站建设南宁网站seo大概多少钱
  • 114黄页信息网宝鸡seo培训
  • 东南亚做棋牌网站挖掘爱站网
  • 中国工程建设招标网官方网站谷歌查询关键词的工具叫什么
  • wordpress管理员密码忘记成都seo招聘
  • 武汉企业建站系统模板下载官方正版百度
  • 上海做网站国际财经新闻
  • 用废旧盒子做家用物品网站seo排名工具
  • 企业铭做网站域名解析在线查询
  • 怎么注册自己的小程序网站优化分析
  • 荆州网站建设流程网站设计培训
  • 网站支付怎么做的seo职业技能培训班