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. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy