C# Algorithm
[C#] LeetCode 문제 번호 84 ( X )
조민상
2024. 1. 5. 13:31
https://leetcode.com/problemset/
문제 번호 84 : Largest Rectangle in Histogram
히스토그램의 막대 높이를 나타내는 정수 높이 배열에서 각 막대의 너비가 1인 경우 히스토그램에서 가장 큰 직사각형의 면적을 반환합니다.
Example 1:
Input: heights = [2,1,5,6,2,3]
Output: 10
설명: 위는 각 막대의 너비가 1인 히스토그램입니다.
가장 큰 직사각형은 면적 = 10 단위인 빨간색 영역에 표시됩니다
Example 2:
Input: heights = [2,4]
Output: 4
제약 조건:
1 <= heights.length <= 10^5
0 <= heights[i] <= 10^4
public class Solution
{
public int LargestRectangleArea(int[] heights)
{
int Largest = heights[0];
if(heights.Length > 1)
{
int area;
for(int p = 1; p < heights.Length; p++)
{
area = heights[p];
for(int i = 1; p-i >= 0 && heights[p]<=heights[p-i]; i++)
{
area += heights[p];
}
for(int i = 1; p+i <= heights.Length-1 && heights[p]<=heights[p+i]; i++)
{
area += heights[p];
}
if(area > Largest)
{
Largest = area;
}
}
}
return Largest;
}
}
Time Limit Exceeded .
반환값은 제대로 나오나 시간초과가 떠버렸다.