2022-11-17

최찬호·2022년 11월 17일

LEETCODE

11. Container With Most Water

주어진 int형 배열 height내에 존재하는 요소 두개로 만들 수 있는 가장 큰 사각형의 넓이를 구하는 문제이다.
문제의 포인트는 사각형의 넓이에 영향을 미치는 것은 가로(두 인덱스간의 거리) x 세로(두 요소중 더 작은 수)라는 것이다. 그러니까 더 작은 요소(세로)가 최대의 넓이를 만들 수 있다는 것이다.

class Solution {
   public int maxArea(int[] height) {
       int max = 0;
       int left = 0;
       int right = height.length - 1;
       while (left < right) {
           int n1 = height[left];
           int n2 = height[right];
           int h = Math.min(n1, n2);
           int w = right - left;
           max = Math.max(max, h * w);
           if (n2 <= n1) {
               right--;
           } else {
               left++;
           }
       }
       return max;
   }
}
profile
체득하고 이해하자

0개의 댓글