# 15.01.2026 [2943. Maximize Area of Square Hole in Grid]
Max square area after removing bars in a grid #medium #intervals
15.01.2026
2943. Maximize Area of Square Hole in Grid medium blog post substack youtube
Join me on Telegram
Problem TLDR
Max square area after removing bars in a grid #medium #intervals
Intuition
Count consequtive intervals separately for horizontal and vertical bars. Then min(max(h,v))^2.
One way: sort bars, count consequtive with counter Second way: use a HashMap(x, length) and update x-l, x+r with 1+m[x-1]+m[x+1]
Approach
do +1 or just init counter with 2
for the HashMap we can skip writing to the middle m[x]
Complexity
Time complexity: $$O(nlog(n))$$, or O(n)
Space complexity: $$O(1)$$ or O(n)
Code
// 22ms
fun maximizeSquareHoleArea(n: Int, m: Int, h: IntArray, v: IntArray) =
listOf(h,v).minOf { val m = HashMap<Int, Int>()
1 + it.maxOf { x -> val l = m[x-1]?:0; val r = m[x+1]?:0
(l+r+1).also{m[x-l]=it;m[x+r]=it}}
}.let{it*it}
// 0ms
pub fn maximize_square_hole_area(_: i32, _: i32, h: Vec<i32>, v: Vec<i32>) -> i32 {
[h, v].map(|s| s.into_iter().sorted().collect::<Vec<_>>()
.chunk_by(|a, b| b - a < 2).map(|c| c.len() + 1).max().unwrap_or(2)
).into_iter().min().unwrap().pow(2) as _
}


