c盤清理的步驟是什么(如何清理C盤空間)
如何清理C盤空間怎么清理C盤的垃圾文件?每天上網會給電腦帶來很多臨時文件,這些垃圾文件不清理掉時間久了就會影響到電腦的運行速度。那怎
2022/12/08
1.簡述:
(資料圖片僅供參考)
給定一個數組heights,長度為n,height[i]是在第i點的高度,那么height[i]表示的直方圖,能夠形成的最大矩形是多少?
1.每個直方圖寬度都為1
2.直方圖都是相鄰的
3.如果不能形成矩形,返回0即可
4.保證返回的結果不會超過231-1
數據范圍:
如輸入[3,4,7,8,1,2],那么如下:
輸入:
[3,4,7,8,1,2]
返回值:
14
輸入:
[1,7,3,2,4,5,8,2,7]
返回值:
16
2.代碼實現:
import java.util.*;public class Solution { /** * 代碼中的類名、方法名、參數名已經指定,請勿修改,直接返回方法規定的值即可 * * * @param heights int整型一維數組 * @return int整型 */ public int largestRectangleArea (int[] heights) { //總寬度 int n=heights.length; //新建單調棧 ArrayDequestack=new ArrayDeque<>(); int res=0; for(int i=0;i heights[i]){ //由于單調棧內元素是單調不遞減的,L到i-1之間的高度一定大于等于curHeight int curHeight=heights[stack.pop()]; //如果棧中元素為空,說明0到i-1之間的高度均大于等于curHeight int L=stack.isEmpty()?0:stack.peek()+1; res=Math.max(res,(i-L)*curHeight); } stack.push(i); } //如果遍歷完之后,單調棧還不為空,則繼續統計可能的最大面積 while(!stack.isEmpty()){ int curHeight=heights[stack.pop()]; int L=stack.isEmpty()?0:stack.peek()+1; res=Math.max(res,(n-L)*curHeight); } return res; }}