From 769de9fe8c847c3558ee65783cc98bdc512c591c Mon Sep 17 00:00:00 2001 From: Reetam101 Date: Mon, 21 Jun 2021 11:39:04 +0530 Subject: [PATCH 1/2] Added the largest rectangle in histogram program --- .../Largest Rectangle In Histogram/README.md | 10 ++++ .../histogram.jpg | Bin 0 -> 12560 bytes .../largest.cpp | 50 ++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 Uncategorized/Largest Rectangle In Histogram/README.md create mode 100644 Uncategorized/Largest Rectangle In Histogram/histogram.jpg create mode 100644 Uncategorized/Largest Rectangle In Histogram/largest.cpp diff --git a/Uncategorized/Largest Rectangle In Histogram/README.md b/Uncategorized/Largest Rectangle In Histogram/README.md new file mode 100644 index 00000000..85960ca1 --- /dev/null +++ b/Uncategorized/Largest Rectangle In Histogram/README.md @@ -0,0 +1,10 @@ +# Largest Rectangle In Histogram + +Given an array of integers heights representing the histogram's bar height where the width of each bar is 1, return the area of the largest rectangle in the histogram. + +## Example: +![alt text](https://github.com/Reetam101/algorithms/blob/add-programs/histogram.jpg?raw=true) +Input: heights = [2,1,5,6,2,3] +Output: 10 +Explanation: The above is a histogram where width of each bar is 1. +The largest rectangle is shown in the red area, which has an area = 10 units. \ No newline at end of file diff --git a/Uncategorized/Largest Rectangle In Histogram/histogram.jpg b/Uncategorized/Largest Rectangle In Histogram/histogram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e9fc83a987d73256ef3b7d29a099d95dd904e86 GIT binary patch literal 12560 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 QB)eEzdeF`aptLjaUnb{9G5`Po literal 0 HcmV?d00001 diff --git a/Uncategorized/Largest Rectangle In Histogram/largest.cpp b/Uncategorized/Largest Rectangle In Histogram/largest.cpp new file mode 100644 index 00000000..4314c6b3 --- /dev/null +++ b/Uncategorized/Largest Rectangle In Histogram/largest.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +using namespace std; + +vector nearestSmallerOnRight(vector& heights) { + stackst; + vectorans(heights.size(),heights.size()); + for(int i=0;i nearestSmallerOnLeft(vector& heights) +{ + stackst; + vectorans(heights.size(),-1); + for(int i=heights.size()-1;i>=0;i--) + { + while(!st.empty() && heights[i]& heights) +{ + vectorNSR=nearestSmallerOnRight(heights); + vectorNSL=nearestSmallerOnLeft(heights); + int ans=0; + for(int i=0;i vec = {2, 1, 5, 6, 2, 3}; + cout << largestRectangleArea(vec); +} From a69fe9250f52102c1cbf0b0f5909c3578fabc906 Mon Sep 17 00:00:00 2001 From: Reetam101 Date: Mon, 21 Jun 2021 12:14:10 +0530 Subject: [PATCH 2/2] Added the largest rectangle in histogram problem --- Uncategorized/Largest Rectangle In Histogram/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Uncategorized/Largest Rectangle In Histogram/README.md b/Uncategorized/Largest Rectangle In Histogram/README.md index 85960ca1..5fc804fe 100644 --- a/Uncategorized/Largest Rectangle In Histogram/README.md +++ b/Uncategorized/Largest Rectangle In Histogram/README.md @@ -3,7 +3,8 @@ Given an array of integers heights representing the histogram's bar height where the width of each bar is 1, return the area of the largest rectangle in the histogram. ## Example: -![alt text](https://github.com/Reetam101/algorithms/blob/add-programs/histogram.jpg?raw=true) +![plot](./histogram.jpg?raw=true) + Input: heights = [2,1,5,6,2,3] Output: 10 Explanation: The above is a histogram where width of each bar is 1.