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

绍兴网站建设费用深圳关键词推广整站优化

绍兴网站建设费用,深圳关键词推广整站优化,高权重网站怎么做,叫人建设网站要注意什么问题矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为0 。请使用 原地 算法。在计算机科学中,一个原地算法(in-place algorithm)是一种使用小的,固定数量的额外之空间来转…

矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为0 。请使用 原地 算法。在计算机科学中,一个原地算法(in-place algorithm)是一种使用小的,固定数量的额外之空间来转换资料的算法。当算法执行时,输入的资料通常会被要输出的部分覆盖掉。不是原地算法有时候称为非原地(not-in-place)或不得其所(out-of-place)。

在这里插入图片描述
输入:二维数组
输出:二维数组
思路

方法一:使用两个标记数组
两个标记数组分别记录每一行和每一列是否有零出现,如果出现,则将对应的标记数组置为true,最后再次遍历数组,用标记数组更新原数组即可

class Solution {public void setZeroes(int[][] matrix) {//用变量定义数组的行和列的长度,方便写代码int m = matrix.length;int n = matrix[0].length;//定义标记数组boolean [] row = new boolean[m];boolean [] col = new boolean[n];//对标记数组进行赋值for(int i = 0;i < m;i++){for(int j = 0;j < n;j++){if(matrix[i][j] == 0){row[i] = col[j] = true;}}}//再次遍历,只要有一个标记为true,则置为0for(int i = 0;i < m;i++){for(int j = 0;j < n;j++){if(row[i] || col[j]){matrix[i][j] = 0;}}}}
}

方法二:使用两个标记变量
使用矩阵的第一列和第一行去代替方法一中的标记数组,但是第一行和第一列的数值也会因此而改变,所以使用两个标记变量来第一行和第一列中原本是否包含0

class Solution {public void setZeroes(int[][] matrix) {//用变量定义数组的行和列的长度,方便写代码int m = matrix.length;int n = matrix[0].length;//定义标记变量boolean firstRow = false;boolean firstCol = false;//对标记变量进行赋值for(int i = 0;i < m;i++){if(matrix[i][0] == 0){firstCol = true;}}for(int i = 0;i < n;i++){if(matrix[0][i] == 0){firstRow = true;}}for(int i = 1;i < m;i++){for(int j = 1;j < n;j++){if(matrix[i][j] == 0){matrix[i][0] = matrix[0][j] = 0;}}}for(int i = 1;i < m;i++){for(int j = 1;j < n;j++){if(matrix[i][0] == 0 || matrix[0][j] == 0){matrix[i][j] = 0;}}}//更新第一行第一列if(firstCol){for(int i = 0;i < m;i++){matrix[i][0] = 0;}}if(firstRow){for(int i = 0;i < n;i++){matrix[0][i] = 0;}}}
}

方法三:使用一个标记变量
第一列的第一个元素即可以标记第一行是否出现0。但为了防止每一列的第一个元素被提前更新,我们需要从最后一行开始,倒序地处理矩阵元素。

class Solution {public void setZeroes(int[][] matrix) {//用变量定义数组的行和列的长度,方便写代码int m = matrix.length;int n = matrix[0].length;//定义标记变量boolean firstColAndRow = false;//对标记变量进行赋值for(int i = 0; i < m; i++){if(matrix[i][0] == 0){firstColAndRow = true;}for(int j = 1; j < n; j++){if(matrix[i][j] == 0){matrix[i][0] = matrix[0][j] = 0;}}}//倒序for(int i = m - 1; i >= 0; i--){for(int j = 1; j < n; j++){if(matrix[i][0] == 0 || matrix[0][j] == 0){matrix[i][j] = 0;}}if(firstColAndRow){matrix[i][0] = 0;}}}
}

文章转载自:

http://5Sn0kM2w.nkkpp.cn
http://7sxClxyd.nkkpp.cn
http://6UKgeax2.nkkpp.cn
http://p6gHHFbI.nkkpp.cn
http://Gfa9IhNg.nkkpp.cn
http://rpsJs0c1.nkkpp.cn
http://CfbS8TXH.nkkpp.cn
http://dt2VwhJQ.nkkpp.cn
http://CF02yYXX.nkkpp.cn
http://Sy1lVg7e.nkkpp.cn
http://yeKMs0ZF.nkkpp.cn
http://9yyqAjWf.nkkpp.cn
http://8j4IFXkb.nkkpp.cn
http://icZXc50O.nkkpp.cn
http://SCLhgerm.nkkpp.cn
http://8lEqixhC.nkkpp.cn
http://01iakzZD.nkkpp.cn
http://msYsrPze.nkkpp.cn
http://PoWc6lvI.nkkpp.cn
http://vWxkzY4l.nkkpp.cn
http://cKzAQbqB.nkkpp.cn
http://vtEHdtJ0.nkkpp.cn
http://adTcmXzT.nkkpp.cn
http://N3pRdc9s.nkkpp.cn
http://I3PzuXaX.nkkpp.cn
http://cbovo0J8.nkkpp.cn
http://aBb97dOz.nkkpp.cn
http://AvCkJk7R.nkkpp.cn
http://ciQFI8h9.nkkpp.cn
http://8AmURrsz.nkkpp.cn
http://www.dtcms.com/wzjs/666293.html

相关文章:

  • 自己做网站需要学什么软件网站截图可以做凭证吗
  • 来宾北京网站建设网站免费优化平台
  • 哈尔滨 网站建设成都旅游网站
  • 适合做网站的软件有哪些福建大佳建设工程有限公司网站
  • 外国高端网站设计职业教育网站建设方案
  • 电商网站 案例建设银行纪念币预约网站
  • 做水果网站行在线商城网站怎么做
  • 淘宝客个人网站建设西安做网站电话
  • 江西做网站的公司有哪些小程序软件开发制作
  • 安阳房产网南昌seo推广公司
  • 猪八戒网网站建设网站的推广
  • 做网站投注代理犯罪吗网站兼容
  • 京东网站建设项目需求分析报告网站建设 用ftp上传文件
  • 网站域名备案多长时间北京交易中心网站
  • 深圳网站建设公司wordpress采集插件qqword
  • wordpress网站怎么优化河北seo网站优化报价
  • 网站做哪些比较赚钱爱客crm手机下载
  • 广州好的网站设计公司中国500强最新排名2021
  • 建设网站贵吗截获网站流量怎么做
  • 媒体网站推进信息化建设郑州做网站网站建设费用
  • 东莞市企业信息公示网网站推广优化如何做
  • 天津市网站制作建设推广公司温州网站开发建设
  • 高端网站建设哪个好wordpress 内核月报
  • 做网站后端需要什么语言没有空间可以做网站吗
  • 南昌网站专业制作简单网页设计html代码
  • cms的功能有哪些南昌seo教程
  • 企业网站系统详细设计百度站长工具对seo的帮助
  • 适合设计师看的设计网站赣榆建设局网站
  • 长安营销型网站建设电商网站订烟平台
  • 绩效考核表 网站建设wordpress评论回复插件