diff --git a/Java/Largest Rectangle b/Java/Largest Rectangle new file mode 100644 index 0000000..1d4e9c1 --- /dev/null +++ b/Java/Largest Rectangle @@ -0,0 +1,135 @@ +import java.util.Scanner; +import java.util.Stack; + +public class Main { + public static void area(int []h) + { + Stack s=new Stack<>(); + Stack index=new Stack<>(); + int right[]=new int[h.length]; + for(int i=0;i=0; i--) + { + if (s.empty()) { + s.push(h[i]); + index.push(i); + } + else + { + if (h[i] < s.peek()) + { + while (s.peek() > h[i]) + { + left[index.peek()]=index.peek()-i; + s.pop(); + index.pop(); + if (s.empty()) + { + break; + } + } + s.push(h[i]); + index.push(i); + } + else + { + s.push(h[i]); + index.push(i); + } + } + } + y=index.size(); + for(int i=0;i