[Array] Container With Most Water
2021. 3. 29. 15:30ㆍ프로그래밍-코딩테스트/LeetCode
두 x좌표 사이의 길이와 두 x좌표에 대한 height값 중 최소값을 곱한 값이 최대가 되는 값을 찾아라
전형적인 two-pointer문제다
포인터를 두 개 두고 Loop를 돌며, 각 Loop의 면적값을 구해 global answer와 비교하는 방식이다.
이 문제가 two-pointer인 이유는 간단하게 x좌표가 같거나 작을 수 없으므로 검사가 필요 없기 때문이다.
예컨데 i가3이라면 i보다 작거나 같은 j는 검사할 필요가 없다
다음과 같이 이중for문을 쓰면 timeout 에러가 날 것이다
이렇게 forward와 backward를 정해주고, global answer를 바꿔가며 설정해주면 된다.
'프로그래밍-코딩테스트 > LeetCode' 카테고리의 다른 글
[Tree] Construct Binary Tree from Preorder and Inorder Traversal (0) | 2021.03.31 |
---|---|
[Tree] Flatten Binary Tree to Linked List (0) | 2021.03.29 |
[Stack] Decode String (0) | 2021.03.29 |
[DP] Unique Binary Search Trees (0) | 2021.03.29 |
[DP] Unique Paths (0) | 2021.03.29 |