面试:数组:矩阵清零
2016-05-20 16:26
393 查看
题目
给定一个矩阵,若某元素为0,则将该元素的行和列清零算法
找到第一个0元素,使用该元素的行来记录需要清零的列,该元素的列记录需要清零的行再扫描,一次清零
import java.util.*; public class Solution{ public void setZeroes(int[][] matrix){ int m=matrix.length; int n=matrix[0].length; int x=-1,y=-1; for(int i=0;i<m;i++){ for(int j=0;j<n;j++) if(matrix[i][j]==0){ if(x==-1 && y==-1){ //找到第一个0元素 x=i; y=j; }else{ matrix[x][j]=0; matrix[i][y]=0; } } } //如果找不到0,直接返回 if(x==-1||y==-1) return; for(int i=0;i<m;i++) for(int j=0;j<n;j++){ if(matrix[x][j]==0||matrix[i][y]==0) //清零 matrix[i][j]=0; } } }
相关文章推荐
- 《程序员面试笔试宝典》学习笔记(四)程序设计基础
- 面试题—宏、函数、宏函数、inline函数的区别与联系
- 常见链表面试题之判断链表是否相交,并求交点
- Java程序员一定知道的优秀第三方库
- 程序员的表白神器“520”大声喊出来
- 程序员最常见的谎话,你说了哪一句?
- 码农只能干到30岁的说法可信吗?
- iOS 面试题整理(带答案)二
- 面试基础(一)-字符串函数
- Stay教你程序员泡妞攻略
- 码农只能干到30岁的新理由
- 《招一个靠谱的移动开发》iOS面试题及详解(下篇)
- 《招一个靠谱的移动开发》iOS面试题及详解(下篇)
- 程序员的表白情书“520”大声喊出来
- 《招一个靠谱的移动开发》iOS面试题及详解(上篇)
- 《招一个靠谱的移动开发》iOS面试题及详解(上篇)
- 腾讯 5.20 2017暑期软件开发实习生笔试+面试
- 常见的单链表面试题
- 剑指Offer----面试题六:重建二叉树
- 父域与子域的帐户是否可以相互登陆