NeetCode 150 / Two Pointers

013Container With Most Water

MediumTwo PointersO(n)
ভিডিওতে দেখো — YouTube @algonur_com

কোড

Python
def maxArea(height: list[int]) -> int:
    l, r = 0, len(height) - 1
    best = 0
    while l < r:
        best = max(best, min(height[l], height[r]) * (r - l))
        if height[l] < height[r]: l += 1
        else: r -= 1
    return best
Java
public int maxArea(int[] height) {
    int l = 0, r = height.length - 1, best = 0;
    while (l < r) {
        best = Math.max(best, Math.min(height[l], height[r]) * (r - l));
        if (height[l] < height[r]) l++; else r--;
    }
    return best;
}
Kotlin
fun maxArea(height: IntArray): Int {
    var l = 0; var r = height.size - 1; var best = 0
    while (l < r) {
        best = maxOf(best, minOf(height[l], height[r]) * (r - l))
        if (height[l] < height[r]) l++ else r--
    }
    return best
}
C++
int maxArea(vector<int>& h) {
    int l=0, r=h.size()-1, best=0;
    while(l<r) { best=max(best,min(h[l],h[r])*(r-l)); if(h[l]<h[r])l++;else r--; }
    return best;
}
C
int maxArea(int* h, int n) {
    int l=0,r=n-1,best=0;
    while(l<r){int w=r-l,mn=h[l]<h[r]?h[l]:h[r];if(mn*w>best)best=mn*w;if(h[l]<h[r])l++;else r--;}
    return best;
}

জটিলতা

O(n)
সময় — অ্যারেটা একবারই ঘুরি, ম্যাপে খোঁজা O(1)।
O(1)
জায়গা — সবচেয়ে খারাপ ক্ষেত্রে সব সংখ্যা ম্যাপে থাকে।
আগের সমস্যা← 3Sumপরের সমস্যাTrapping Rain Water →