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

  • 相关阅读:
    二柱子在线答题
    SWUST OJ(952)
    SWUST OJ (943)
    FileZilla 客户端连接 FlieZilla 服务器 连接成功读取目录列表却失败的解决办法
    串的模式匹配算法 ------ KMP算法
    lvalue require as increment operand
    c 语言连续输入字符型数据
    [pat]数素数
    [PAT]数字分类
    HDOJ_4540_威威猫系列故事——打地鼠
  • 原文地址:https://www.cnblogs.com/twodog/p/12137658.html
Copyright © 2011-2022 走看看