Fetch the repository succeeded.
package codingInterviewGuide.part1;
import java.util.ArrayDeque;
import java.util.Deque;
/**
* Created by Dell on 2017-08-03.
*/
public class SubArrNum {
public int getArrNum(int[] arr,int num){
Deque<Integer> qmax=new ArrayDeque<Integer>();
Deque<Integer> qmin=new ArrayDeque<Integer>();
int count=0;int min=0,max=0;
for(int i=0;i<arr.length;i++){
while(!qmax.isEmpty()&&arr[qmax.peekLast()]<arr[i]){//将qmax队尾比arr[i]小的元素下标弹出
qmax.pollLast();
}
qmax.addLast(i);
while(!qmin.isEmpty()&&arr[qmin.peekLast()]>arr[i]){//将qmax队尾比arr[i]小的元素下标弹出
qmin.pollLast();
}
qmin.addLast(i);
min=qmin.peekFirst();
max=qmax.peekFirst();
while(arr[max]-arr[min]>=num){
if(max<min){
qmax.pollFirst();
max=qmax.peekFirst();
}else{
qmin.pollFirst();
min=qmin.peekFirst();
}
}
count+=qmax.size()*qmin.size();
}
return count;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。