반응형

문제
https://leetcode.com/problems/container-with-most-water/description/
입력
n == height.length
2 <= n <= 105
0 <= height[i] <= 10^4
height = [1,8,6,2,5,4,8,3,7]
결과
ans: Int = 물을 담을 수 있는 최대 면적
해석
백준에서 풀어봤던 기억이 있었던 것 같다.
위 문제 역시 전형적인 투 포인터 형식이므로 포인터를 이동시키는 조건을 빠르게 찾는다.
두 포인터를 양쪽 끝에 위치 시키고 높이가 낮은 것을 옮긴다.
이유는 담을 수 있는 높이는 두 높이 중 최소 높이로 측정되므로 낮은 높이를 옮겨 다음 검사에서는 더 높은
높이를 확보하는 것
코드
class Solution {
func maxArea(_ height: [Int]) -> Int {
let n = height.count
var l = 0
var r = n - 1
var ans: Int = 0
while l < r {
let w = (r-l)
let h = min(height[l], height[r])
ans = max(ans, w * h)
if height[l] < height[r] {
l += 1
} else {
r -= 1
}
}
return ans
}
}
반응형
'PS > LeetCode' 카테고리의 다른 글
| 300. Longest Increasing Subsequence (0) | 2025.02.02 |
|---|---|
| Climbing Stairs (1) | 2025.02.02 |
| 3Sum (0) | 2025.01.12 |
| Search in Rotated Sorted Array (0) | 2025.01.09 |
| Find Minimum in Rotated Sorted Array (0) | 2025.01.08 |