美文网首页
Largest Plus Sign

Largest Plus Sign

作者: Frank_Kivi | 来源:发表于2018-06-27 17:08 被阅读5次

    https://www.lintcode.com/problem/largest-plus-sign/description

    import java.util.Arrays;
    
    public class Solution {
        private int result = 0;
        /**
         * @param N: size of 2D grid
         * @param mines: in the given list
         * @return: the order of the plus sign
         */
        public int orderOfLargestPlusSign(int N, int[][] mines) {
            // Write your code here
            int[][] grid = new int[N][N];
            for (int i = 0; i < grid.length; i++) {
                int[] ints = grid[i];
                Arrays.fill(ints, 1);
            }
            for (int i = 0; i < mines.length; i++) {
                int[] mine = mines[i];
                grid[mine[0]][mine[1]] = 0;
            }
            for (int i = 0; i < grid.length; i++) {
                int[] mine = grid[i];
                for (int j = 0; j < grid.length; j++) {
                    if (mine[j] == 1) {
                        treeWalk(grid, i, j);
                    }
                }
            }
            return result;
        }
    
        private void treeWalk(int[][] mines, int i, int j) {
            int level = 1;
            while (true) {
                {
                    int x = j - level;
                    int y = i;
                    if (x >= 0 && mines[y][x] == 1) {
    
                    } else {
                        break;
                    }
                }
                {
                    int x = j + level;
                    int y = i;
                    if (x < mines[0].length && mines[y][x] == 1) {
    
                    } else {
                        break;
                    }
                }
                {
                    int x = j;
                    int y = i - level;
                    if (y >= 0 && mines[y][x] == 1) {
    
                    } else {
                        break;
                    }
                }
                {
                    int x = j;
                    int y = i + level;
                    if (y < mines.length && mines[y][x] == 1) {
    
                    } else {
                        break;
                    }
                }
                level++;
            }
            result = Math.max(level, result);
        }
    }
    

    相关文章

      网友评论

          本文标题:Largest Plus Sign

          本文链接:https://www.haomeiwen.com/subject/yxkiyftx.html