参考https://www.cnblogs.com/SkyeAngel/p/8985801.html
public static int lessNumArray(int[] arr,int k){
if(arr==null||arr.length==0){
return 0;
}
LinkedList<Integer> maxlist=new LinkedList<>();
LinkedList<Integer> minlist=new LinkedList<>();
int l=0;
int r=0;
int res=0;
while(l<arr.length){
while(r<arr.length){
while(!maxlist.isEmpty()&&arr[maxlist.peekLast()]<=arr[r]){
maxlist.pollLast();
}
maxlist.add(r);
while(!minlist.isEmpty()&&arr[minlist.peekLast()]>=arr[r]){
minlist.pollLast();
}
minlist.add(r);
r++;
if(arr[maxlist.peekLast()]-arr[minlist.peekLast()]>k){
break;
}
}
if(maxlist.peekFirst()==l){
maxlist.pollFirst();
}
if(minlist.peekFirst()==l){
minlist.pollFirst();
}
res+=r-l;
l++;
}
return res;
}