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

网站优化排名的方法国外免费下载wordpress主题

网站优化排名的方法,国外免费下载wordpress主题,网站下载软件入口,373网站怎么做这样的网站矩阵置零 给定一个 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://www.yayakq.cn/news/928258/

相关文章:

  • 高清图片素材网站推荐海珠区网站建设
  • 好的网站你知道张家港做网站排名
  • 商城网站主要功能百度云做网站
  • 从入门到精通网站建设制作表格的软件
  • 正能量网站网址大全做化妆品注册和注册的网站
  • 株洲网站建设 英铭国外好看的网站设计
  • 福州大型网站建设在vs上用c 做登录网站
  • 朝阳seo泰安关键词优化公司
  • 哪里有手机网站建设公司如何制作网站专题
  • 给企业做网站的业务员网站动态效果怎么做
  • 网站备案与域名关系新加坡网站制作
  • 番禺网站优化怎样做自己的vip解析网站
  • 化肥网站模板河北建设工程信息网正规网站
  • 手机制作网站的软件有哪些东西博罗网站开发
  • 公司有域名的怎么建设网站怎样申请免费网站空间
  • 南乐县住房和城乡建设局网站商家推广平台有哪些
  • 上海网站建设 seo平顶山专业做网站公司
  • 教育机构网站建设方案wordpress单页
  • 单位网站等级保护必须做吗电商网站开发需要什么语言
  • 珠海酒店网站建设电子商务网站建设需要做好哪些准备
  • 企业网站排名怎么做网站的速度诊断怎么做
  • 望京网站建设服饰营销型网站建设
  • 罗定城乡建设局网站百度pc端网页版
  • adsense用什么网站做黄冈个人网站建设平台
  • 安平县做百度网站电话简单网站建设设计
  • 建设网站appdw编辑器
  • 无锡市建设工程质监站网站qq安全中心信任网站
  • 如何用子域名做网站加强图书馆网站建设
  • 网站制作建设怎么收费国外网站卖货平台
  • 零基础学习做网站用云速成美站怎么做网站