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

  • 相关阅读:
    java中interface的完整表述
    DoTA与人生
    DotNet.Utilities工具类
    visual studio xcopy /exclude测试
    Assembly.Load()方法,Assembly.LoadFrom()方法,Assembly.LoadFile()方法的区别!
    DataGridView列自适应宽度
    [Head First设计模式]
    winform 取消datagridview第一行选中状态
    winform WebBrowser如何修改使用默认的IE浏览器版本
    C# 注释换行
  • 原文地址:https://www.cnblogs.com/twodog/p/12137660.html
Copyright © 2011-2022 走看看