Number of elements that can be seen from right side

Given an array of integers, consider the elements as the height of the building, find the number of buildings that can be seen from the right side.

Examples:

Input : height[] = {2, 6, 2, 4, 0, 1}
Output : 3
we can see only 3 building i.e with height 1, 4 and 6.

Input : height[] = {4, 8, 2, 0, 0, 5}
Output : 2

This problem seems to be finding longest increasing sub sequence from right but actually it is not.We have to just increase the count if we encounter any building with greater height found so far.



Below is the implementation of above approach.

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to find number of elements
// that can be seen from right side.
#include <bits/stdc++.h>
using namespace std;
  
int numberOfElements(int height[], int n)
{
    int max_so_far = 0;
    int coun = 0;
  
    for (int i = n - 1; i >= 0; i--) {
        if (height[i] > max_so_far) {
            max_so_far = height[i];
            coun++;
        }
    }
    return coun;
}
  
// Driver code
int main()
{
    int n = 6;
    int height[] = { 4, 8, 2, 0, 0, 5 };
    cout << numberOfElements(height, n);
    return 0;
}
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find number of elements
// that can be seen from right side.
import java.util.*;
class Solution
{
   
static int numberOfElements(int height[], int n)
{
    int max_so_far = 0;
    int coun = 0;
   
    for (int i = n - 1; i >= 0; i--) {
        if (height[i] > max_so_far) {
            max_so_far = height[i];
            coun++;
        }
    }
    return coun;
}
  
// Driver code 
public static void main(String args[])
{
    int n = 6;
    int height[] = { 4, 8, 2, 0, 0, 5 };
    System.out.println( numberOfElements(height, n));
    
}
  
}
//contributed by Arnab Kundu
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to find 
# number of elements
# that can be seen from right side
  
def numberOfElements(height, n):
      
    max_so_far = 0
    coun = 0
      
    for i in range(n-1,-1,-1):
        if height[i] > max_so_far:
            max_so_far = height[i]
            coun = coun + 1
    return coun
  
#Driver code
if __name__=='__main__':
    n = 6
    height = [4, 8, 2, 0, 0, 5]
    print(numberOfElements(height, n))
      
# This code is contributed by 
# Shashank_Sharma     
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find number of elements
// that can be seen from right side.
using System;
  
class GFG
{
public static int numberOfElements(int []height,
                                   int n)
{
    int max_so_far = 0;
    int coun = 0;
  
    for (int i = n - 1; i >= 0; i--)
    {
        if (height[i] > max_so_far)
        {
            max_so_far = height[i];
            coun++;
        }
    }
    return coun;
}
  
// Driver code 
public static void Main()
{
    int n = 6;
    int []height = { 4, 8, 2, 0, 0, 5 };
    Console.WriteLine(numberOfElements(height, n));
}
}
  
// This code is contributed by Soumik 
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to find number of elements
// that can be seen from right side.
  
function numberOfElements($height, $n)
{
    $max_so_far = 0;
    $coun = 0;
  
    for ($i = $n - 1; $i >= 0; $i--) 
    {
        if ($height[$i] > $max_so_far
        {
            $max_so_far = $height[$i];
            $coun++;
        }
    }
    return $coun;
}
  
// Driver code
$n = 6;
$height = array(4, 8, 2, 0, 0, 5 );
echo numberOfElements($height, $n);
  
// This code is contributed
// by Akanksha Rai
chevron_right

Output:
2



Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.





Article Tags :
Practice Tags :