Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public int maxKilledEnemies(char[][] grid) {
- if(grid == null || grid.length < 1 || grid[0].length < 1) return 0;
- int m = grid.length, n = grid[0].length, re = 0;
- int[][] L = new int[m][n], R = new int[m][n], U = new int[m][n], D = new int[m][n];
- for(int i = 0; i < m; i++)
- {
- for(int j = 1; j < n; j++)
- {
- L[i][j] = (grid[i][j - 1] == 'E' ? 1 : 0) + L[i][j - 1];
- if(grid[i][j] == 'W') L[i][j] = 0;
- }
- for(int j = n - 2; j >= 0; j--)
- {
- R[i][j] = (grid[i][j + 1] == 'E' ? 1 : 0) + R[i][j + 1];
- if(grid[i][j] == 'W') R[i][j] = 0;
- }
- }
- for(int j = 0; j < n; j++)
- {
- for(int i = 1; i < m; i++)
- {
- U[i][j] = (grid[i - 1][j] == 'E' ? 1 : 0) + U[i - 1][j];
- if(grid[i][j] == 'W') U[i][j] = 0;
- }
- for(int i = m - 2; i >= 0; i--)
- {
- D[i][j] = (grid[i + 1][j] == 'E' ? 1 : 0) + D[i + 1][j];
- if(grid[i][j] == 'W') D[i][j] = 0;
- }
- }
- for(int i = 0; i < m; i++)
- {
- for(int j = 0; j < n; j++)
- {
- if(grid[i][j] == '0') re = Math.max(re, L[i][j] + D[i][j] + U[i][j] + R[i][j]);
- }
- }
- return re;
- }
- }
Add Comment
Please, Sign In to add comment