Objective In this challenge, we're going to use loops to help us do some simple math. Task Given an integer,  , print its first   multiples. Each multiple   (where  ) should be printed on a new line in the form:  N x i = result . Input Format A single integer,  . Constraints Output Format Print   lines of output; each line   (where  ) contains the   of   in the form: N x i = result . Sample Input 2 Sample Output 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 Explanation:           Here, we just need to use for loops to achieve the result Solution : import  java.io.* ;  import  java.math.* ;  import  java.security.* ;  import  java.text.* ;  import  java.util.* ;  import  java.util.concurrent.* ;  import  java.util.regex.* ;     public  class  Solution  {      public  static  void  main ( String []  args )  t...
Given an array, print the Next Greater Element (NGE) for every element. The Next greater Element for an element x is the first greater element on the right side of x in the array. Elements for which no greater element exist, consider the next greater element as -1.
eg: input=[11,4,3,2,10,12]
ouput : 12 ,10,10,10,12,-1
EXPLANATION:
- Find the first next greater element for each element.
 - If the element have no greater element replace the element with -1
 
APPROACH:
Using Stack.
Logic:
- Create one stack for storing the index of the array elements
 - using for loop iterate over each element.
 - compare variable to store the next greater element
 - If the element you are iterating is lesser than the compare element, then push into the stack.
 - If the element you are iterating is greater than the compare element pop the index from stack then replace the index position of output array with the greater element.
 - Repeat this while loop until it is not greater than compare variable.
 - After iterating through for loop there is no element more to compare and push.
 - Then remove the remaining indexes from stack and replace the corresponding position in output array with -1.
 
Program :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50  | import java.util.*; import java.io.*; public class MyClass { public static void main(String args[]) { int input[] = {10,7,4,2,9,10,11,3,2}; int output[]=new int[input.length]; int compare=Integer.MAX_VALUE; Stack<Integer> stack = new Stack<Integer>(); for(int i=0;i<input.length;i++) { if(input[i]<compare) { stack.push(i); // compare=input[stack.peek()]; } else { while(compare<input[i] && !stack.isEmpty()) { int index=stack.pop(); output[index]=input[i]; if(!stack.isEmpty()){ compare=input[stack.peek()]; } } stack.push(i); } compare=input[stack.peek()]; } while(!stack.isEmpty()) { output[stack.pop()]=-1; } for(int i:output) { System.out.println(i); } System.out.println("End"); } }  | 
Check my other posts too....
Comments
Post a Comment