Skip to main content

Next Greater Element To The Right

1. You are given a number n, representing the size of array a.

2. You are given n numbers, representing elements of array a.

3. You are required to "next greater element on the right" for all elements of array

4. Input and output is handled for you.


"Next greater element on the right" of an element x is defined as the first element to right of x having value greater than x.

Note: If an element does not have any element on it's right side greater than it, consider -1 as it's "next greater element on right"

e.g.

for the array [2 5 9 3 1 12 6 8 7]

Next greater for 2 is 5

Next greater for 5 is 9

Next greater for 9 is 12

Next greater for 3 is 12

Next greater for 1 is 12

Next greater for 12 is -1

Next greater for 6 is 8

Next greater for 8 is -1

Next greater for 7 is -1

Input Format

Input is managed for you

Output Format

Output is managed for you

Constraints

0 <= n < 10^5

-10^9 <= a[i] <= 10^9

Sample Input

5

5

3

8

-2

7

Sample Output

8

8

-1

7

-1


Solution:

import java.io.*;

import java.util.*;


public class Main{

  public static void display(int[] a){

    StringBuilder sb = new StringBuilder();


    for(int val: a){

      sb.append(val + "\n");

    }

    System.out.println(sb);

  }

public static void main(String[] args) throws Exception {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


    int n = Integer.parseInt(br.readLine());

    int[] a = new int[n];

    for(int i = 0; i < n; i++){

       a[i] = Integer.parseInt(br.readLine());

    }


    int[] nge = solve(a);

    display(nge);

 }


 public static int[] solve(int[] arr){

   // solve

    Stack<Integer> s = new Stack<Integer>();

    int n  = arr.length;

    int[] res = new int[n];

    res[n-1] = -1;

    s.push(arr[n-1]);

    for(int i=n-2;i>=0;i--){

        while(!s.empty() && s.peek() < arr[i])

            s.pop();

        if(s.empty())

            res[i] = -1;

        else res[i] = s.peek();

        s.push(arr[i]);

    }

   return res;

 }

}

Comments

Popular posts from this blog

UPSEE Counselling 2018 Round 3

UPSEE Counselling 2018 Round 3, AKTU/UPTU Counselling, Started – Register Here UPSEE 2018 Seat Allotment Result (Round 3)  is releasing on  13th July 2018 . It will be conducted through online mode. The university conducts a state level examination in name of Uttar Pradesh State Entrance Exam (UPSEE) for providing admission to the UG & PG courses in the field of engineering, management, etc.  You can get complete information about AKTU Counselling 2018. Here, we are providing details about the schedule, procedure, admission, etc. UPSEE Counselling 2018 –  Seat Allotment Round 2 Result on 10th July Exclusive:  UPSEE 2018 Seat Allotment Result (Round 3) is releasing on 17th July 2018.  Link will be provided here. UPSEE 2018 Counselling User Manual for candidates has been released now.   Click here to view user manual. Click here to view UPSEE 2018 Counselling schedule. Physical reporting will be started on 20th July....

Classes and Objects | Accenture TFA

  Question  1 Correct Mark 1.00 out of 1.00 Flag question Question text ___ and _____ are the access specifiers that can be applied to top level Class. Select one or more: public   protected default   private Feedback Your answer is correct. The correct answers are: default, public Question  2 Correct Mark 1.00 out of 1.00 Flag question Question text class Sample{      private double num = 100;    private int square(int a){ return a*a;    } }   public class Test{    public static void main(String args[]){   Sample obj = new Sample();   System.out.println(obj.num);  System.out.println(obj.square(10));    }   } Select one: Compile time error   Run time error Executes but no output 100 Feedback Your answer is correct. The correct answer is: Compile time error Question  3 Correct Mark 1.00 out of 1.00 Flag question Question text Choose the ...

Display of Provisional Answer Keys and Question Paper with Recorded Responses for Answer Key Challenge | JEE (Main) 2021 Session 4 for Paper 1 (B.E./B.Tech.)

The JEE (Main) - 2021 Session - 4 was conducted throughout the country and abroad on 26, 27, 31 August and 1 September 2021 for Paper 1 (B.E./B.Tech.) in the Computer Based Test (CBT) mode. The National Testing Agency has uploaded the Provisional Answer Keys for Paper 1 (B.E./B.Tech.) along with the Question Paper with Recorded Responses on the website https://jeemain.nta.nic.in for candidates to challenge. The procedure (as enclosed) for the challenge of Answer Key may be used. The candidates, who are not satisfied with the answer key, may challenge the same by paying a fee of ₹ 200/- (Rupees Two Hundred only) per question challenged as a non-refundable processing fee. This facility is available from 06 September 2021 to 08 September 2021 (up to 10:00 A.M.). The payment of the processing fee may be made through, Debit card/Credit Card/Net Banking/Paytm upto 08 September 2021 (upto 11:00 A.M.). No challenge will be entertained without receipt of the processing fee. The Challenges will ...