首页 > 其他 > 详细

leetcode807

时间:2018-10-08 00:17:55      阅读:198      评论:0      收藏:0      [点我收藏+]
class Solution {
public:
    int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {
        //找出每一行的最大值
        const int N = 50;
        int ROW_HEIGHT[N];
        int COL_HEIGHT[N];
        int MIX_HEIGHT[N][N];
        for (int i = 0; i < grid.size(); i++)
        {
            int max_height = INT_MIN;
            for (int j = 0; j < grid[0].size(); j++)
            {
                max_height = max(max_height, grid[i][j]);
            }
            ROW_HEIGHT[i] = max_height;
        }

        //找出每一列的最大值
        for (int j = 0; j < grid[0].size(); j++)
        {
            int max_height = INT_MIN;
            for (int i = 0; i < grid.size(); i++)
            {
                max_height = max(max_height, grid[i][j]);
            }
            COL_HEIGHT[j] = max_height;
        }
        //每一个值,不能超过 min(所在行的最大值,所在列的最大值)
        int sum = 0;
        for (int i = 0; i < grid.size(); i++)
        {
            for (int j = 0; j < grid[0].size(); j++)
            {
                sum += min(ROW_HEIGHT[i], COL_HEIGHT[j]) - grid[i][j];
            }
        }
        return sum;
    }
};

 

leetcode807

原文:https://www.cnblogs.com/asenyang/p/9752070.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!