标签:rand problems href www list targe target style tar
https://leetcode.com/problems/01-matrix/
public class Solution { public int[][] updateMatrix(int[][] matrix) { if (matrix == null || matrix.length == 0) { return null; } int[][] diff = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; Queue<Integer> queue = new LinkedList<>(); int[][] result = new int[matrix.length][matrix[0].length]; for (int i = 0; i < result.length; i++) { for (int j = 0; j < result[0].length; j++) { if (matrix[i][j] == 0) { result[i][j] = 0; queue.add(i * result[0].length + j); } else { result[i][j] = Integer.MAX_VALUE; } } } while (!queue.isEmpty()) { int index = queue.poll(); int i = index / result[0].length; int j = index - i * result[0].length; for (int[] current : diff) { int x = i + current[0]; int y = j + current[1]; if (x < 0 || x >= result.length || y < 0 || y >= result[0].length || result[x][y] <= result[i][j]) { continue; } result[x][y] = result[i][j] + 1; queue.offer(x * result[0].length + y); } } return result; } }
思路参考:http://www.cnblogs.com/grandyang/p/6602288.html
标签:rand problems href www list targe target style tar
原文地址:http://www.cnblogs.com/chencode/p/01-matrix.html