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

洛阳网站建设汉狮怎么样小型crm系统

洛阳网站建设汉狮怎么样,小型crm系统,2023新闻摘抄,下列关于网站开发中网友上传题目#xff1a;力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 一个机器人位于一个 m x n 网格的左上角 #xff08;起始点在下图中标记为 “Start” #xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角#xff0…题目力扣LeetCode官网 - 全球极客挚爱的技术成长平台 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 “Start” 。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角在下图中标记为 “Finish” 。 问总共有多少条不同的路径 分析 假设为3行2列的二维数组 1. 向右---向下---向下 2. 向下---向下---向右 3. 向下--向右---向下 可以推导 1. 一直向右和一直向下每种走法只有1种走法没有其他可以旋转的空间。因此 11121 2 、那么到达dp[1][1] 的走法就是 1 1 2 3. 那么到达右下角dp[2][1] 就是 2 1 3; 即3种走法 分析2 假设有3行7列 1. 按行走只有1种走法 2、按列走只有一种走法可得 111111111 那么dp[1][1] 就是 dp[0][1] dp[1][0] 即 1 1 2依次类推可得 111111112345671 第三行还是按照这种方式推导可得 1111111123456713610152128 因此,针对3行7列的二维数组可得28种走法 代码实现 public int uniquePaths(int m, int n) {int[][] dp new int[m][n];//第一行都为1for (int col 0; col n; col) {dp[0][col] 1;}//第一列都为1for (int row 0; row m; row) {dp[row][0] 1;}for (int row 1; row m; row) {for(int col 1; col n; col) {dp[row][col] dp[row][col - 1] dp[row - 1][col];}}return dp[m-1][n-1];} 还是一样的问题以上代码的时间复杂度为O(m*n) 空间复杂度也为O(m*n). 如果100行100列的二维数组将浪费100*100的空间复杂度。 空间压缩进行优化 public int uniquePaths2(int m, int n) {int[] dp new int[n];//第一行都为1for (int col 0; col n; col) {dp[col] 1;}for (int row 1; row m; row) {dp[0] 1;for (int col 1; col n; col) {dp[col] dp[col -1] dp[col];}}return dp[n -1];} 完整代码 package code03.动态规划_07.lesson4;//力扣62题 // https://leetcode.cn/problems/unique-paths/description/ public class DiffPathSum_02 {public int uniquePaths(int m, int n) {int[][] dp new int[m][n];//第一行都为1for (int col 0; col n; col) {dp[0][col] 1;}//第一列都为1for (int row 0; row m; row) {dp[row][0] 1;}for (int row 1; row m; row) {for(int col 1; col n; col) {dp[row][col] dp[row][col - 1] dp[row - 1][col];}}return dp[m-1][n-1];}public int uniquePaths2(int m, int n) {int[] dp new int[n];//第一行都为1for (int col 0; col n; col) {dp[col] 1;}for (int row 1; row m; row) {dp[0] 1;for (int col 1; col n; col) {dp[col] dp[col -1] dp[col];}}return dp[n -1];} }力扣测试通过 题目力扣63题 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 “Start” 。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角在下图中标记为 “Finish”。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径 网格中的障碍物和空位置分别用 1 和 0 来表示。 分析 1. 这一题其实跟上面一体解法相同唯一的不同之处是有障碍物。 2. 第一行和第一列遇到障碍物那么后面的路都走不通而已 3. 后面的推导当前方格为障碍物设置0代表走不通如果不为0则按照原有逻辑进行推导即可 完整代码 package code03.动态规划_07.lesson4;//力扣63题 // https://leetcode.cn/problems/unique-paths-ii/description/ public class DiffPathSum_03 {//时间复杂度 O(m*n), 空间复杂度 O(m*n)public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m obstacleGrid.length;int n obstacleGrid[0].length;//obstacleGrid[0][0] 1 代表左上角第一个就是障碍物//obstacleGrid[m-1][n-1] 1 代表右下角最后一个是障碍物if (obstacleGrid null|| obstacleGrid.length 0|| obstacleGrid[0][0] 1|| obstacleGrid[m-1][n-1] 1) {return 0;}int[][] dp new int[m][n];//处理第一行dp[0][0] 1;for (int col 1; col n; col) {//如果当前列为1, 或者前一列为0. 代表遇到障碍物。后面路走不通全部变为0if (obstacleGrid[0][col] 1 || dp[0][col -1] 0) {dp[0][col] 0;} else {//第一行只有1条路dp[0][col] 1;}}//处理第一列for (int row 1; row m; row) {//如果当前列为1, 或者上一列为0. 代表遇到障碍物。后面路走不通全部变为0if (obstacleGrid[row][0] 1 || dp[row-1][0] 0) {dp[row][0] 0;} else {//第一行只有1条路dp[row][0] 1;}}for (int row 1; row m; row) {for(int col 1; col n; col) {//如果当前列有障碍物此条路走不通。当前列的值变为0//否则按照原有的逻辑进行计算dp[row][col] obstacleGrid[row][col] 1 ? 0: dp[row][col - 1] dp[row - 1][col];}}return dp[m-1][n-1];}//空间压缩//时间复杂度 O(m*n), 空间复杂度 O(n)public int uniquePathsWithObstacles2(int[][] obstacleGrid) {int m obstacleGrid.length;int n obstacleGrid[0].length;//obstacleGrid[0][0] 1 代表左上角第一个就是障碍物//obstacleGrid[m-1][n-1] 1 代表右下角最后一个是障碍物if (obstacleGrid null|| obstacleGrid.length 0|| obstacleGrid[0][0] 1|| obstacleGrid[m-1][n-1] 1) {return 0;}int[] dp new int[n];//处理第一行dp[0] 1;for (int col 1; col n; col) {//如果当前列为1, 或者前一列为0. 代表遇到障碍物。后面路走不通全部变为0if (obstacleGrid[0][col] 1 || dp[col -1] 0) {dp[col] 0;} else {//第一行只有1条路dp[col] 1;}}for (int row 1; row m; row) {//当前列为障碍物或者上一列为障碍物都走不通。dp[0] (obstacleGrid[row][0] 1 || dp[0] 0) ? 0 : 1;for(int col 1; col n; col) {//如果当前列有障碍物此条路走不通。当前列的值变为0//否则按照原有的逻辑进行计算dp[col] obstacleGrid[row][col] 1 ? 0 : dp[col -1] dp[col];}}return dp[n-1];}public static void main(String[] args) {DiffPathSum_03 test new DiffPathSum_03();int[][] arr {{0, 0, 0},{0, 1, 0},{0, 0, 0}};System.out.println(test.uniquePathsWithObstacles2(arr));} }
http://www.w-s-a.com/news/415798/

相关文章:

  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司
  • 龙岩网站设计招聘信息网上免费logo设计
  • 高端定制网站开发建站教程详解网站共享备案可以申请支付接口
  • 做房产网站接不到电话企业推广宣传方式
  • 网站建设费用不用摊销下一页p30
  • 北京 工业网站建设公司国外服务器公司有哪些
  • 怎样局域网站建设盈利网站
  • 公司做网站广告语济南建网站价格消费品展
  • 建德网站网站建设规划设计书
  • 谷歌网站流量分析wordpress置顶浮标
  • 江苏新宁建设集团网站网络规划设计师2023论文
  • 合作建站协议python wordpress采集器
  • 集团网站网页模板网站建设图片大全