我简单说一下:
顺序遍历+逆序遍历+单调栈的使用
单调栈可以自己去搜索,网上很多
class Solution {
public static int maxWidthRamp(int[] arr){
int n=arr.length;
int[] stack=new int[n];
int r=0;
for(int i=0;i<n;i++){
if(r==0||arr[stack[r-1]]>arr[i])
stack[r++]=i;
}
int ans=0;
for(int j=n-1;j>=0;j--){
while(r!=0&&arr[stack[r-1]]<=arr[j]){
int i=stack[--r];
ans=Math.max(ans,j-i);
}
}
return ans;
}
}
(马士兵上课笔记)
纯属新手,只是为了保藏笔记