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

技术培训机构专业的网站建设与优化

技术培训机构,专业的网站建设与优化,网站后台登入模板,开封建网站文章目录 题目问题反思 题目 题目如下,其实并不难,属于小而美的前缀和技巧中的体型。因为我之前做过这道题,所以重刷也马上就能写。但是对比我写的和之前看别人写的,明显我的代码不够简洁,一个核心的差异在于对DP数组…

文章目录

  • 题目
  • 问题
  • 反思

题目

题目如下,其实并不难,属于小而美的前缀和技巧中的体型。因为我之前做过这道题,所以重刷也马上就能写。但是对比我写的和之前看别人写的,明显我的代码不够简洁,一个核心的差异在于对DP数组的定义上。

在这里插入图片描述

问题

先看下我的代码,我对DP数组的定义是:存储以(0,0)为起点,到(i, j)的数组之和。提交代码显示超出时间限制。

两个问题:

  1. 边界条件处理贼麻烦,我自己写的时候也注意到了;(但这不是导致超时的原因)
  2. 处理超时,因为我每次要算一遍DP。
class NumMatrix:def __init__(self, matrix: List[List[int]]):self.matrix = matrixdef sumFromLeftCorner(self):R, C = len(self.matrix), len(self.matrix[0])dp = [[0 for j in range(C)] for i in range(R)]for i in range(R):for j in range(C):if i == 0 and j == 0:dp[i][j] = self.matrix[i][j]elif i == 0:dp[i][j] = dp[i][j-1] + self.matrix[i][j]elif j == 0:dp[i][j] = dp[i-1][j] + self.matrix[i][j]else:dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + self.matrix[i][j]return dpdef sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:dp = self.sumFromLeftCorner()if row1 == 0 and col1 == 0:return dp[row2][col2]elif row1 == 0:return dp[row2][col2] - dp[row2][col1 - 1]elif col1 == 0:return dp[row2][col2] - dp[row1 - 1][col2]else:return dp[row2][col2] - dp[row1-1][col2] - dp[row2][col1-1] + dp[row1-1][col1-1]

反思

对于第一个问题:

  1. 边界条件处理贼麻烦,我自己写的时候也注意到了;(但这不是导致超时的原因)

只要改一下DP数组的定义即可:存储以(0,0)为起点,到(i-1, j-1)的数组之和。因此DP数组的长宽都要加1;

对于第二个问题:

  1. 处理超时,因为我每次要算一遍DP。

将DP数组计算的过程放在__init__下面,总是只计算一次,然后重复调用其结果即可/

修改以后的代码如下,明显简洁很多!

class NumMatrix:def __init__(self, matrix: List[List[int]]):self.matrix = matrixself.dp = self.sumFromLeftCorner()def sumFromLeftCorner(self):R, C = len(self.matrix), len(self.matrix[0])dp = [[0 for j in range(C+1)] for i in range(R+1)]for i in range(1, R+1):for j in range(1, C+1):dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + self.matrix[i-1][j-1]return dpdef sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:return self.dp[row2+1][col2+1] - self.dp[row1][col2+1] - self.dp[row2+1][col1] + self.dp[row1][col1]
http://www.yayakq.cn/news/212931/

相关文章:

  • 网站开发 写文档工业和信息化部装备工业发展中心
  • 建什么网站做cpaapp制作外包
  • 个人网站支付解决方案seo技术大师
  • 大连网站空间遂宁移动端网站建设
  • 网站规划开发前景外贸常用网站有哪些
  • 北京 设计 网站建设工程建设业主官方网站
  • 外贸网站风格黑色企业网站
  • 网站开发学习教程centos怎么做网站
  • 同性性做视频网站如何建立网站数据库连接
  • 怎么查网站的注册信息wordpress 调用分类名称
  • 大连网站制作的公司简洁大气企业网站欣赏
  • 做网站赚钱还是做app赚钱中国网站制作公司排名
  • 学校网站建设的安全策略甘肃省通信管理局网站
  • 建设网站请示宣传微信小程序开发平台游戏
  • 聊城做网站建设物流网站怎么做推广
  • 干净的下载网站博客网站程序
  • 来个网站吧好人一生平安连锁店品牌设计公司
  • DW怎么做电商网站旅游手机网站模板
  • 广东h5网站建设广州网站建设功能
  • 卡盟网站制作漯河哪里做网站
  • 庆阳网站建设l礼品文化网站建设
  • 网站备案如何注销网站三要素关键词 描述怎么做
  • 做自由行的网站上海建筑设计公司网站
  • 响应式网站改为自适应网站建设最新模板
  • 个人网站建设的参考文献大数据培训课程
  • 在阿里云建设一个网站的全流程科技公司网站设计公司
  • 怎么申请自己的网站网络游戏美术设计专业
  • wordpress 模板4列插件舟山seo
  • 宁波模板开发建站广告宣传片
  • 企业响应网站深圳东道建设集团网站