Skip to main content

Container With Most Water solution

Container With Most Water

You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]).

Find two lines that together with the x-axis form a container, such that the container contains the most water.

Return the maximum amount of water a container can store.

Notice that you may not slant the container.

 

Example 1:

Container with most water
container with most water
Input: height = [1,8,6,2,5,4,8,3,7]
Output: 49
Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.

Example 2:

Input: height = [1,1]
Output: 1

 

Constraints:

  • n == height.length
  • 2 <= n <= 105
  • 0 <= height[i] <= 104

solution :
container with most water problem is solved by using the two pointer concept. the container with most water gfg is same as on leetcode.
  • Start by evaluating the widest container, using the first and the last line.
  • All other possible containers are less wide, so to hold more water, they need to be higher.
  • Thus, after evaluating that widest container, skip lines at both ends that don't support a higher height. 
  • Then evaluate that new container we arrived at. Repeat until there are no more possible containers left.


class Solution {
public:
    int maxArea(vector<int>& height) {
         
          int size_height = height.size();
          int i = 0 ;
          int j = size_height -1;
          int result= INT_MIN ;
          while(i <= j)
          {
              result = max(result , (j-i)*(min(height[j] , height[i])));
              if(height[i] < height[j])
              {
                  i++;
              }
              else
              {
                  j--;
              }

          }
          return result;
    }
};

Any problem ? comment down , i will try to help..

Follow this blog to learn something new .

Comments

Popular posts from this blog

[PDF DOWNLOAD] AKTU Quantum series data structure b.tech 2nd year download

  All AKTU Quantums are available here. Get your hands on AKTU Quantums and boost your grades in AKTU semester exams. You can either search them category wise or can use the search bar or can manually search on this page. Download aktu second year quantum pdf data structures  download  data structures quantum aktu download aktu data structures quantum click here to download  write in comment section if you want quantum of any other subject.

Root to Leaf Paths | binary tree | geeksforgeeks solution

  Root to Leaf Paths Given a Binary Tree of size N, you need to find all the possible paths from root node to all the leaf node's of the binary tree. Example 1: Input: 1 / \ 2 3 Output: 1 2 #1 3 # Explanation: All possible paths: 1->2 1->3 Example 2: Input:   10   / \   20 30   / \   40 60 Output: 10 20 40 #10 20 60 #10 30 # Your Task: Your task is to complete the function  Paths()  that takes the root node as an argument and return all the possible path. (All the path are printed '#' separated by the driver's code.) Note:  The return type cpp:  vector java:  ArrayList> python:  list of list Expected Time Complexity:  O(N). Expected Auxiliary Space:  O(H). Note:  H is the height of the tree. Constraints: 1<=N<=10 3 Note:  The  Input/Ouput  format and  Example  given, are used for the system'...

2485. Find the Pivot Integer | Binary search

  Given a positive integer   n , find the   pivot integer   x   such that: The sum of all elements between  1  and  x  inclusively equals the sum of all elements between  x  and  n  inclusively. Return  the pivot integer  x . If no such integer exists, return  -1 . It is guaranteed that there will be at most one pivot index for the given input.   Example 1: Input: n = 8 Output: 6 Explanation: 6 is the pivot integer since: 1 + 2 + 3 + 4 + 5 + 6 = 6 + 7 + 8 = 21. Example 2: Input: n = 1 Output: 1 Explanation: 1 is the pivot integer since: 1 = 1. Example 3: Input: n = 4 Output: -1 Explanation: It can be proved that no such integer exist.   Constraints: 1 <= n <= 1000 Solution : class Solution { publ ic:     int pivotInteger( int n ) {         int sum = (( n )*( n + 1 ))/ 2 ;         int i = 1 ;         int j =...