LeetCode554. 砖墙(Java HashMap 统计前缀和)
Posted oyzg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode554. 砖墙(Java HashMap 统计前缀和)相关的知识,希望对你有一定的参考价值。
554. 砖墙(Java HashMap 统计前缀和)
链接:https://leetcode-cn.com/problems/brick-wall/solution/554-zhuan-qiang-java-hashmap-tong-ji-qia-ol5r/
解题思路
用HashMap来统计 key 为 边界下标, value 为 key为边界的次数
统计出来后遍历,找到出现次数最多的边界
用n-这个数 就是 答案
class Solution
public int leastBricks(List<List<Integer>> wall)
int n = wall.size();
//key为边界下标,value为key作为边界下标的次数
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
//统计key作为边界的次数
for(int i = 0; i < n; i++)
int edge = 0;
//遍历的时候注意:j < wall.get(i).size()-1 而不是wall.get(i).size()
for(int j = 0; j < wall.get(i).size()-1; j++)
edge += wall.get(i).get(j);
if(map.containsKey(edge))
map.put(edge, map.get(edge)+1);
else
map.put(edge, 1);
//遍历
Iterator iter = map.entrySet().iterator();
int max = 0;
while(iter.hasNext())
Map.Entry<Integer, Integer> entry = (Map.Entry<Integer, Integer>) iter.next();
Integer value = entry.getValue();
max = Math.max(value, max);
return n-max;
以上是关于LeetCode554. 砖墙(Java HashMap 统计前缀和)的主要内容,如果未能解决你的问题,请参考以下文章