力扣 554 磚墻

題意:給定一個墻,讓花一條線穿過的墻數(shù)最小

思路:遍歷每一行,用hashmap統(tǒng)計每一列,有多少最后一格磚,比如
{
{1,1, 2},
{2,2}
}
那么第1列有1格磚,第二列有兩格磚,因為不能把線花在末尾,所以遍歷到每一行最后一塊磚的前一塊

思想:遍歷數(shù)組

復(fù)雜度:時間O(m*n),空間O(n)

class Solution {
    public int leastBricks(List<List<Integer>> wall) {
        if(wall == null)
            return 0;
        int m = wall.size();
        if(m == 0)
            return 0;
        
        if(wall.get(0) == null || wall.get(0).size() == 0)
            return 0;
        
        int n = 0;
        for(int i: wall.get(0)) {
            n += i;
        }
        HashMap<Integer, Integer> map = new HashMap();
        int index = 0;
        int cnt = 0;
        int res = m;
        for(List<Integer> list: wall) {
            index = 0;
            for(int j=0;j<list.size() -1;j++) {
                int i = list.get(j);
                index += i;
                int cur = map.getOrDefault(index - 1, 0);
                map.put(index - 1, cur + 1);
                res = Math.min(res, m - map.get(index - 1)); 
            }
            cnt++;
        }
    
        return res;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Remove time complexity: remove from a set is O(1), remove...
    云端漫步_b5aa閱讀 738評論 0 0
  • Intern 一個有序序列有N個數(shù),隨機(jī)替換其中k個,求復(fù)雜度< O(NlogN)的算法使替換后數(shù)組重新有序。St...
    WinKKKKy閱讀 727評論 0 0
  • 最近在準(zhǔn)備面試,發(fā)現(xiàn)自己真的菜的不行,就計劃接下來的時間把 leetcode 上面刷的 中等題 和 每日一題做個簡...
    毒死預(yù)言家的女巫閱讀 763評論 0 3
  • 題目描述(中等難度) 給定一個矩陣,然后找到所有含有 0 的地方,把該位置所在行所在列的元素全部變成 0。 解法一...
    windliang閱讀 377評論 0 0
  • 題目描述(困難難度) 黑色的看成墻,藍(lán)色的看成水,寬度一樣,給定一個數(shù)組,每個數(shù)代表從左到右墻的高度,求出能裝多少...
    windliang閱讀 652評論 0 0

友情鏈接更多精彩內(nèi)容