力扣 554 砖墙

题意:给定一个墙,让花一条线穿过的墙数最小

思路:遍历每一行,用hashmap统计每一列,有多少最后一格砖,比如
{
{1,1, 2},
{2,2}
}
那么第1列有1格砖,第二列有两格砖,因为不能把线花在末尾,所以遍历到每一行最后一块砖的前一块

思想:遍历数组

复杂度:时间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;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Remove time complexity: remove from a set is O(1), remove...
    云端漫步_b5aa阅读 738评论 0 0
  • Intern 一个有序序列有N个数,随机替换其中k个,求复杂度< O(NlogN)的算法使替换后数组重新有序。St...
    WinKKKKy阅读 728评论 0 0
  • 最近在准备面试,发现自己真的菜的不行,就计划接下来的时间把 leetcode 上面刷的 中等题 和 每日一题做个简...
    毒死预言家的女巫阅读 771评论 0 3
  • 题目描述(中等难度) 给定一个矩阵,然后找到所有含有 0 的地方,把该位置所在行所在列的元素全部变成 0。 解法一...
    windliang阅读 377评论 0 0
  • 题目描述(困难难度) 黑色的看成墙,蓝色的看成水,宽度一样,给定一个数组,每个数代表从左到右墙的高度,求出能装多少...
    windliang阅读 653评论 0 0

友情链接更多精彩内容