首页 > 其他 > 详细

LeetCode 542. 01 矩阵

时间:2020-04-15 13:42:30      阅读:56      评论:0      收藏:0      [点我收藏+]

题目描述:给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。

两个相邻元素间的距离为 1 。

class Solution {
public:
	bool isExist(vector<vector<int>>& matrix, const int& j, const int& k, const int& i, const int& rows, const int& cols) {
		if (j - 1 >= 0) {
			if (matrix[j - 1][k] == i)return true;
		}
		if (j + 1 < rows) {
			if (matrix[j + 1][k] == i)return true;
		}
		if (k - 1 >= 0)
			if (matrix[j][k - 1] == i)return true;
		if (k + 1 < cols)
			if (matrix[j][k + 1] == i)return true;
		return false;
	}
	vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) {
		unsigned int rows = matrix.size();
		unsigned int cols = matrix[0].size();
		int unsigned num = 0;
		for (int j = 0; j < rows; j++) {
			for (int k = 0; k < cols; k++) {
				if (matrix[j][k] == 0)
					num++;
				else
					matrix[j][k] = 10001;
			}
		}
		unsigned int i = 0;
		while (num != rows * cols) {
			for (int j = 0; j < rows; j++) {
				for (int k = 0; k < cols; k++) {
					if (matrix[j][k] > i){
						if (isExist(matrix, j, k, i, rows, cols)) {
							matrix[j][k] = i + 1;
							num++;
						}
					}	
				}
			}
			i++;
		}
		return matrix;
	}
};

  

LeetCode 542. 01 矩阵

原文:https://www.cnblogs.com/airfy/p/12704178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!