Written by
java-style
on
on
[Java] LeetCode 11번 Container With Most Water
[Java] LeetCode 11번 Container With Most Water
막대기 2개로 둘러쌓인 부분의 넓이를 구하는 것이 문제이다.
작은 길이의 막대기가 기준이 되어 넓이가 구해지는 것이 문제의 포인트이다.
왼쪽 막대기의 위치를 l 오른쪽 막대기의 위치를 r로 두고, 왼쪽과 오른쪽 중 작은 길이의 막대기를 한칸씩 옮겨서 넓이의 최대값을 찾는다. 작은 것은 옮기는 이유는 더 큰 넓이가 되기 위해서는 작은 길이의 막대기가 길어져야되기 때문이다.
class Solution { public int maxArea(int[] height) { int l = 0; int r = height.length - 1; int max = (r - l) * Math.min(height[l], height[r]); while (l < r) { if (height[l] <= height[r]) { l++; } else { r--; } max = Math.max((r - l) * Math.min(height[l], height[r]), max); } return max; } }
반응형
from http://blue-jay.tistory.com/71 by ccl(A) rewrite - 2021-09-26 15:02:10