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

成都建设厅官方网站网站建设业务渠道

成都建设厅官方网站,网站建设业务渠道,广州外贸网站建设 open,ps 如何做网站从0开始的秋招刷题路#xff0c;记录下所刷每道题的题解#xff0c;帮助自己回顾总结 73. 矩阵置零 给定一个 m x n 的矩阵#xff0c;如果一个元素为 0 #xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1#xff1a; 输入#xff1a;mat…从0开始的秋招刷题路记录下所刷每道题的题解帮助自己回顾总结 73. 矩阵置零 给定一个 m x n 的矩阵如果一个元素为 0 则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1 输入matrix [[1,1,1],[1,0,1],[1,1,1]] 输出[[1,0,1],[0,0,0],[1,0,1]] 示例 2 输入matrix [[0,1,2,0],[3,4,5,2],[1,3,1,5]] 输出[[0,0,0,0],[0,4,5,0],[0,3,1,0]] 提示 m matrix.length n matrix[0].length 1 m, n 200 −231-2^31−231 matrix[i][j] 231−12^31 - 1231−1 进阶 一个直观的解决方案是使用 O(mn) 的额外空间但这并不是一个好的解决方案。 一个简单的改进方案是使用 O(m n) 的额外空间但这仍然不是最好的解决方案。 你能想出一个仅使用常量空间的解决方案吗 方法一 思路用两个set分别记录需要置0的行和需要置0的列。第一次遍历矩阵时若发现一个元素为0则将其行和列值分别加入到两个set中。第二次遍历矩阵时将行set中的行全部置0将列set中的列全部置0。 public void setZeroes(int[][] matrix) {if(matrix null || matrix.length 0)return;int m matrix.length, n matrix[0].length;SetInteger row new HashSetInteger();SetInteger col new HashSetInteger();for(int i 0; i m; i){for(int j 0; j n; j){if(matrix[i][j] 0){row.add(i);col.add(j);}}}for(int i : row){for(int j 0; j n; j)matrix[i][j] 0;}for(int j : col){for(int i 0; i m; i)matrix[i][j] 0;} }时间复杂度O(m×n) 空间复杂度O(mn) 最坏情况是矩阵中全部元素为0的情况这时两个set的大小分别为m和n。 方法二 思路不用额外空间让首行和首列记录某列和某行是否有0 算法步骤 首先用两个布尔类型变量firstRow和firstCol分别记录矩阵的首行和首列中是否有0 遍历除首行和首列外的所有元素若元素matrix[i][j]为0则将它对应的首行和首列中的元素matrix[i][0]和matrix[0][j]置为0意为此行和列后续需要被置0由于修改后首行和首列是否有0的信息会被破坏掉因此需要有之前的步骤一 遍历首行和首列若发现首行中有元素为0则将此元素所处的列全部置0若发现首列中有元素为0则将此元素所处的行全部置0。 根据步骤一的布尔类型变量firstRow和firstCol来判断首行和首列是否需要被置0。 public void setZeroes(int[][] matrix) {if(matrix null || matrix.length 0)return;int m matrix.length, n matrix[0].length;boolean firstRow false, firstCol false;//步骤一for(int i 0; i m; i){if(matrix[i][0] 0)firstCol true;}for(int j 0; j n; j){if(matrix[0][j] 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] 0;matrix[0][j] 0;}}}//步骤三for(int i 1; i m; i){if(matrix[i][0] 0){for(int j 0; j n; j)matrix[i][j] 0;}}for(int j 1; j n; j){if(matrix[0][j] 0){for(int i 0; i m; i)matrix[i][j] 0;}}//步骤四if(firstRow){for(int j 0; j n; j)matrix[0][j] 0;}if(firstCol){for(int i 0; i m; i)matrix[i][0] 0;} }时间复杂度O(m×n) 空间复杂度O(1)
http://www.hkea.cn/news/14260543/

相关文章:

  • 网站html5自适应屏幕大小天翼电子商务有限公司
  • 广告平面设计网站高埗镇网站仿做
  • 北京seo网站诊断博物馆装饰设计公司
  • 做下载类型网站怎样划算公司logo设计图片欣赏
  • 网站排名突然下降解决WordPress rss连接
  • 以网站内容建设和运维为主建房城乡建设部网站
  • 上海高端网站定制开发邯郸学做网站学校
  • 浏览器网页版免费进入哈尔滨网站优化指导
  • 网站建设具体流程图网站建设与管理 试卷
  • 网站建设 技术 哪些python基础教程题库
  • 网站开发中如何设计验证码免费的外贸平台有哪些
  • 文山知名网站建设报价十大app开发公司排名
  • 公司网站赏析网站建设网页设计用什么软件
  • 网站备案的影布怎么做网站系统建设系广告经营者
  • 美团是最早做团购的网站么烟台制作网站有哪些
  • 网站做系统叫什么iis 网站打不开 建设中
  • 河源网站优化商务网站底部设计
  • 网站站制做群晖外网打开wordpress
  • 最知名的网站推广公司广告传媒公司网站
  • 电商网站建设小强广东网站备案多长时间
  • 企业宣传型网站建设wordpress 查看sql
  • 建设银行支付宝网站天猫商城网上购物正品下载
  • 网站接入商河北邯郸做网站的公司
  • 整形网站专题素材信用网站建设招标书
  • 重庆高端网站开发体育局网站建设
  • 郑州企业网站制作简单的个人主页网站制作
  • 网站一键生成回老家做PHP网站
  • 如何设计网站制作方案wordpress文章批量
  • 在淘宝做网站可以改域名吗seo助力网站转化率提升
  • 网站建设广告合同需要交印花税吗查流量网站