Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Number of elements that can be seen from right side

  • Difficulty Level : Easy
  • Last Updated : 26 Mar, 2021

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

 

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12. 

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

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. 
 

C++




// 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;
}

Java




// 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

Python3




# 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    

C#




// 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

PHP




<?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

Javascript




<script>
// javascript program to find number of elements
// that can be seen from right side.
 
    function numberOfElements(height , n)
    {
        var max_so_far = 0;
        var coun = 0;
 
        for (let i = n - 1; i >= 0; i--)
        {
            if (height[i] > max_so_far)
            {
                max_so_far = height[i];
                coun++;
            }
        }
        return coun;
    }
 
    // Driver code
    var n = 6;
    var height = [ 4, 8, 2, 0, 0, 5 ];
    document.write(numberOfElements(height, n));
 
// This code is contributed by gauravrajput1
</script>
Output: 
2

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :