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

图书馆网站开发策划书南京传销是以网站开发

图书馆网站开发策划书,南京传销是以网站开发,seo链接提交入口,广州互联网企业100强文章目录 写在前面Tag题目来源解题思路方法一#xff1a;动态规划方法二#xff1a;空间优化 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法#xff0c;两到三天更新一篇文章#xff0c;欢迎催更…… 专栏内容以分析题目为主#xff0c;并附带一些对于本题… 文章目录 写在前面Tag题目来源解题思路方法一动态规划方法二空间优化 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法两到三天更新一篇文章欢迎催更…… 专栏内容以分析题目为主并附带一些对于本题涉及到的数据结构等内容进行回顾与总结文章结构大致如下部分内容会有增删 Tag介绍本题牵涉到的知识点、数据结构题目来源贴上题目的链接方便大家查找题目并完成练习题目解读复述题目确保自己真的理解题目意思并强调一些题目重点信息解题思路介绍一些解题思路每种解题思路包括思路讲解、实现代码以及复杂度分析知识回忆针对今天介绍的题目中的重点内容、数据结构进行回顾总结。 Tag 【动态规划-空间优化】【数组】 题目来源 64. 最小路径和 解题思路 方法一动态规划 定义状态 朴素的动态规划方法是定义状态 dp[i][j]表示从网格左上角 (0, 0) 位置到 (i, j) 位置的最小路径和。 状态转移 根据题目中 “每次只能向下或者向右移动一步”可知到达位置 (i, j) 只能从 (i-1, j) 向下移动一步或者从 (i, j-1) 向右一步因此有转移关系 d p [ i ] [ j ] m i n ( d p [ i − 1 ] [ j ] , d p [ i ] [ j − 1 ] ) , i ≥ 1 , j ≥ 1 dp[i][j] min(dp[i-1][j], dp[i][j-1]), i \ge 1, j \ge 1 dp[i][j]min(dp[i−1][j],dp[i][j−1]),i≥1,j≥1 base case dp[0][0] grid[0][0]。 对于网格 grid 中的第一行和第一列位置只能从对应位置的左侧和上方的位置移动一步得到于是需要进行如下方式的初始化 // 第一列 for (int i 1; i m; i)dp[i][0] dp[i - 1][0] grid[i][0];// 第一行 for (int j 1; j n; j) {dp[0][j] dp[0][j - 1] grid[0][j]; }最后返回 dp[m-1][n-1] 表示从网格左上角到网格右下角的最小路径和。 实现代码 class Solution { public:int minPathSum(vectorvectorint grid) {int m grid.size(), n grid[0].size();vectorvectorint dp vectorvectorint(m, vectorint(n));dp[0][0] grid[0][0];// 对于在第一行或者第一列第一列for (int i 1; i m; i)dp[i][0] dp[i - 1][0] grid[i][0];第一行for (int j 1; j n; j) {dp[0][j] dp[0][j - 1] grid[0][j];}// 对于不在第一行和第一列的元素for (int i 1; i m; i) {for (int j 1; j n; j) {dp[i][j] min(dp[i - 1][j], dp[i][j - 1]) grid[i][j];}}return dp[m - 1][n - 1];} };复杂度分析 时间复杂度 O ( m n ) O(mn) O(mn) m m m 为网格 grid 的行数 n n n 为网格的列数。 空间复杂度 O ( m n ) O(mn) O(mn)。 方法二空间优化 方法一中朴素解法的空间复杂度可以进行优化只需要使用 O ( m i n { m , n } ) O(min\{m, n\}) O(min{m,n}) 的复杂度即可解决。 我们以 示例 1 为例说明如何使用线性空间解决本题。 网格的行数和列数一样选择按行来更新最小路径和选择列也可以维护一个数组 dp 长度为 3。 初始化 dp {1, 4, 5}dp[0] 表示从位置 (0, 0) 到位置 (0, 0) 的最小路径和dp[1] 表示从位置 (0, 0) 到位置 (0, 1) 的最小路径和dp[2] 表示从位置 (0, 0) 到位置 (0, 2) 的最小路径和。 在网格的第一行从 0 开始数dp[0] 表示从位置 (0, 0) 到位置 (1, 0) 的最小路径和因为只能从 (0, 0) 位置到 (1, 0) 位置所以更新 dp[0] dp[0] grid[1][0]dp[1] 表示从位置 (0, 0) 到位置 (1, 1) 的最小路径和因为可以从 (1, 0) 位置向右或者 (0, 1) 位置向下移动到位置 (1, 1)所以有 dp[1] min(dp[0], dp[1]) grid[i][j]… 具体实现见如下代码。 实现代码 class Solution { public:int minPathSum(vectorvectorint grid) {int m grid.size();int n grid[0].size();int more max(m, n);int less min(m, n);bool rowMore more m; // 判断是否是行数大于等于列数vectorint arr(less); // 以较短维度的长度作为临时空间比如列数较小int i, j;for (i 0; i less; i) {// 更新第 0 行的所有列即初始化if (i 0) {arr[i] grid[0][0];}else {arr[i] arr[i - 1] (rowMore ? grid[0][i] : grid[i][0]);}}for (i 1; i more; i) {// 按照行进行更新arr[0] arr[0] (rowMore ? grid[i][0] : grid[0][i]); // 更新 i 行 0 列的答案for (j 1; j less; j) { // 更新 i 行其他列的答案arr[j] min(arr[j - 1], arr[j]) (rowMore ? grid[i][j] : grid[j][i]);}}return arr[less-1];} };复杂度分析 时间复杂度 O ( m n ) O(mn) O(mn) m m m 为网格 grid 的行数 n n n 为网格的列数。 空间复杂度 O ( m i n { m , n } ) O(min\{m, n\}) O(min{m,n})。 写在最后 如果您发现文章有任何错误或者对文章有任何疑问欢迎私信博主或者在评论区指出 。 如果大家有更优的时间、空间复杂度的方法欢迎评论区交流。 最后感谢您的阅读如果有所收获的话可以给我点一个 哦。
http://www.w-s-a.com/news/740010/

相关文章:

  • 国家城乡住房和建设部网站西安私人网站
  • 天津高端网站定制seo实战教程
  • 网站文章怎么做才能被快速收录网站备案核验系统
  • 子网站建设方案l建设银行网站
  • 免费看舆情网站网站备案用户名忘了怎么办
  • 地方门户网站的分类网站的方案
  • 沧州哪里做网站网站的建设是什么
  • 设计公司海报秦皇岛seo网站推广
  • 网站导航规划wordpress做漫画
  • jsp体育用品网站建设wordpress 10万篇文章
  • 沈阳做微信和网站的公司网站在线支付接口
  • 重庆整合网络营销百度seo快速提升排名
  • 设计师网站外网百度分析工具
  • 旅游网站建设技术解决方案wordpress主题安装后找不到
  • 网站图片文字排版错误管理系统界面设计
  • 网站建设 台州广州惠科互联网技术有限公司
  • 网站页面尺寸大小四川鸿业建设集团网站
  • 做女朋友的网站局网站建设方案word
  • 做阿里国际网站会有成效吗科技网站有哪些
  • 高端公司网站建设北京两学一做网站
  • 黄埔网站建设设计wordpress 文件夹改名
  • 怎么什么软件可以吧做网站最火的二十个电商app
  • wordpress theme sage网站seo优化加推广
  • 建设一个大型电影网站公司网站建设工作总结
  • 传奇网站一般怎么做的宇泽佛山网站建设
  • google网站入口电商运营十大基础知识
  • 建设公司网站的细节中国建设网网站
  • 重庆美邦建网站宝安网页设计
  • 建网站的地址十堰做网站
  • 怎么评判一个网站做的好与坏专做情侣装网站