zoukankan      html  css  js  c++  java
  • Bomb Enemy 炸弹人

    Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return the maximum enemies you can kill using one bomb.
    The bomb kills all the enemies in the same row and column from the planted point until it hits the wall since the wall is too strong to be destroyed.
    Note that you can only put the bomb at an empty cell. 

    Example:

    For the given grid
    
    0 E 0 0
    E 0 W E
    0 E 0 0
    
    return 3. (Placing a bomb at (1,1) kills 3 enemies)

    class Solution {
    public:
    int maxKilledEnemies(vector<vector<char>>& grid) {
    if (grid.empty() || grid[0].empty()) return 0;
    int m = grid.size(), n = grid[0].size(), res = 0;
    vector<vector<int>> v1(m, vector<int>(n, 0)), v2 = v1, v3 = v1, v4 = v1;
    for (int i = 0; i < m; ++i) {
    for (int j = 0; j < n; ++j) {
    int t = (j == 0 || grid[i][j] == 'W') ? 0 : v1[i][j - 1];
    v1[i][j] = grid[i][j] == 'E' ? t + 1 : t;
    }
    for (int j = n - 1; j >= 0; --j) {
    int t = (j == n - 1 || grid[i][j] == 'W') ? 0 : v2[i][j + 1];
    v2[i][j] = grid[i][j] == 'E' ? t + 1 : t;
    }
    }
    for (int j = 0; j < n; ++j) {
    for (int i = 0; i < m; ++i) {
    int t = (i == 0 || grid[i][j] == 'W') ? 0 : v3[i - 1][j];
    v3[i][j] = grid[i][j] == 'E' ? t + 1 : t;
    }
    for (int i = m - 1; i >= 0; --i) {
    int t = (i == m - 1 || grid[i][j] == 'W') ? 0 : v4[i + 1][j];
    v4[i][j] = grid[i][j] == 'E' ? t + 1 : t;
    }
    }
    for (int i = 0; i < m; ++i) {
    for (int j = 0; j < n; ++j) {
    if (grid[i][j] == '0') {
    res = max(res, v1[i][j] + v2[i][j] + v3[i][j] + v4[i][j]);
    }
    }
    }
    return res;
    }
    };

    转载于:https://www.cnblogs.com/jxr041100/p/8317312.html

  • 相关阅读:
    linksys wrt160nv3 刷dd-wrt固件
    win2008 r2 远程桌面问题
    windows server 2008 集成raid卡驱动
    gitlab-ce
    git
    批量发布jar包springboot应用
    gradle
    lvs
    rsyslog
    特殊权限
  • 原文地址:https://www.cnblogs.com/twodog/p/12137657.html
Copyright © 2011-2022 走看看