「算法」807. 保持城市天際線

image.png
在二維數(shù)組grid中,grid[i][j]代表位于某處的建筑物的高度。 我們被允許增加任何數(shù)量(不同建筑物的數(shù)量可能不同)的建筑物的高度淳玩。 高度 0 也被認(rèn)為是建筑物。

最后哎榴,從新數(shù)組的所有四個(gè)方向(即頂部,底部僵蛛,左側(cè)和右側(cè))觀看的“天際線”必須與原始數(shù)組的天際線相同尚蝌。 城市的天際線是從遠(yuǎn)處觀看時(shí),由所有建筑物形成的矩形的外部輪廓充尉。 請(qǐng)看下面的例子飘言。

建筑物高度可以增加的最大總和是多少?

例子:
輸入: grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
輸出: 35
解釋: 
The grid is:
[ [3, 0, 8, 4], 
  [2, 4, 5, 7],
  [9, 2, 6, 3],
  [0, 3, 1, 0] ]

從數(shù)組豎直方向(即頂部驼侠,底部)看“天際線”是:[9, 4, 8, 7]
從水平水平方向(即左側(cè)姿鸿,右側(cè))看“天際線”是:[8, 7, 9, 3]

在不影響天際線的情況下對(duì)建筑物進(jìn)行增高后谆吴,新數(shù)組如下:

gridNew = [ [8, 4, 8, 7],
            [7, 4, 7, 7],
            [9, 4, 8, 7],
            [3, 3, 3, 3] ]
說明:

1 < grid.length = grid[0].length <= 50。
 grid[i][j] 的高度范圍是: [0, 100]苛预。
一座建筑物占據(jù)一個(gè)grid[i][j]:換言之句狼,它們是 1 x 1 x grid[i][j] 的長(zhǎng)方體。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有热某。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán)腻菇,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

題解

image.png

Swift

class Solution {
    func maxIncreaseKeepingSkyline(_ grid: [[Int]]) -> Int {
        // 存放列最大值
        var colMax = [Int](repeating: 0, count: grid.count)
        // 存放行最大值
        var rowMax = [Int](repeating: 0, count: grid[0].count)
        
        for col in 0..<grid.count {
            for row in 0..<grid[0].count {
                colMax[col] = max(colMax[col], grid[col][row])
                rowMax[row] = max(rowMax[row], grid[col][row])
            }
        }
        
        var result = 0
        
        for col in 0..<grid.count {
            for row in 0..<grid[0].count {
                result += min(colMax[col], rowMax[row]) - grid[col][row]
            }
        }
        
        return result
    }
}

print(Solution().maxIncreaseKeepingSkyline([[3, 0, 8, 4], [2, 4, 5, 7], [9, 2, 6, 3], [0, 3, 1, 0]]))

Dart

import 'dart:math';

class Solution {
  int maxIncreaseKeepingSkyline(List<List<int>> grid) {
    // 存放列最大值

    var colMax = List.generate(grid.length, (index) => 0);

    // 存放行最大值
    var rowMax = List.generate(grid[0].length, (index) => 0);

    for (var col = 0; col < grid.length; col++) {
      for (var row = 0; row < grid[0].length; row++) {
        colMax[col] = max(colMax[col], grid[col][row]);
        rowMax[row] = max(rowMax[row], grid[col][row]);
      }
    }

    var result = 0;

    for (var col = 0; col < grid.length; col++) {
      for (var row = 0; row < grid[0].length; row++) {
        result += min(colMax[col], rowMax[row]) - grid[col][row];
      }
    }

    return result;
  }
}

void main() {
  print(Solution().maxIncreaseKeepingSkyline([
    [3, 0, 8, 4],
    [2, 4, 5, 7],
    [9, 2, 6, 3],
    [0, 3, 1, 0]
  ]));
}

github-mrliuys

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昔馋,一起剝皮案震驚了整個(gè)濱河市筹吐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绒极,老刑警劉巖骏令,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔬捷,死亡現(xiàn)場(chǎng)離奇詭異垄提,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)周拐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門铡俐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妥粟,你說我怎么就攤上這事审丘。” “怎么了勾给?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵滩报,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我播急,道長(zhǎng)脓钾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任桩警,我火速辦了婚禮可训,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捶枢。我一直安慰自己握截,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布烂叔。 她就那樣靜靜地躺著谨胞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蒜鸡。 梳的紋絲不亂的頭發(fā)上胯努,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天昼牛,我揣著相機(jī)與錄音,去河邊找鬼康聂。 笑死贰健,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恬汁。 我是一名探鬼主播伶椿,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼氓侧!你這毒婦竟也來了脊另?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤约巷,失蹤者是張志新(化名)和其女友劉穎偎痛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體独郎,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踩麦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氓癌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谓谦。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贪婉,靈堂內(nèi)的尸體忽然破棺而出反粥,到底是詐尸還是另有隱情,我是刑警寧澤疲迂,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布才顿,位于F島的核電站,受9級(jí)特大地震影響尤蒿,放射性物質(zhì)發(fā)生泄漏郑气。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一优质、第九天 我趴在偏房一處隱蔽的房頂上張望竣贪。 院中可真熱鬧,春花似錦巩螃、人聲如沸演怎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爷耀。三九已至,卻和暖如春拍皮,著一層夾襖步出監(jiān)牢的瞬間歹叮,已是汗流浹背跑杭。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咆耿,地道東北人德谅。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像萨螺,于是被迫代替她去往敵國(guó)和親窄做。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容