最大值减去最小值小于或等于num的子数组数量
来源:互联网 发布:python 毫秒数 编辑:程序博客网 时间:2024/06/05 20:06
import java.util.LinkedList;//最大值减去最小值小于或等于num的子数组数量public class getAllSubArray{ //获得子数组的数量 public static int getNum(int[]arr,int num) { if(arr==null||arr.length==0) { return 0; } //双端队列记录子数组的最大值和最小值 LinkedList <Integer> qmin=new LinkedList<Integer>(); //记录最小值 LinkedList <Integer> qmax= new LinkedList<Integer>(); //记录最大值 int i=0; int j=0; int res=0; while(i<arr.length) { while(j<arr.length) { while(!qmin.isEmpty()&&arr[qmin.peekLast()]>=arr[j]) { qmin.pollLast(); } qmin.addLast(j); //新的最小值加入qmin队列尾 while(!qmax.isEmpty()&&arr[qmax.peekLast()]<=arr[j]) { qmax.pollLast(); } qmax.addLast(j);//新的最大值加入qmax队列尾 if(arr[qmax.getFirst()]-arr[qmin.getFirst()]>num) { break; } j++; } if(qmin.peekLast()==i) { qmin.pollFirst(); } if(qmax.peekFirst()==i) { qmax.pollFirst(); } res+=j-i; //记录总的子数组的个数 i++; } return res; } //获得随机的数组 public static int [] getAarry(int leng) { if(leng==0) { return null; } int arr[]=new int[leng]; for(int i=0;i<leng;i++) { arr[i]=(int)(Math.random()*10); } return arr; } //打印获得的随机数组 public static void printAarry(int[]arr) { if(arr!=null) { for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); } } }public static void main(String[] args){ 、int []arr=getAarry(2); printAarry(arr); //获得满足条件的子数组的数量 System.out.println(" "); System.out.println("子数组数量: "+getNum(arr,3));}}
阅读全文
0 0
- 最大值减去最小值小于等于num的子数组数量
- 数据结构 最大值减去最小值小于或等于num的子数组数量
- 算法题-最大值减去最小值小于或等于 num 的子数组数量
- 算法题-最大值减去最小值小于或等于 num 的子数组数量
- 最大值减去最小值小于或等于num的子数组数量
- 最大值减去最小值小于或等于num的子数组数量
- 栈和队列---最大值减去最小值小于或等于num的子数组数量
- 最大值减去最小值小于或等于num的子数组数量
- 栈和队列——最大值减去最小值小于或等于num的子数组数量
- 1.10 最大值减去最小值小于或等于num的子数组数量
- 最大值减去最小值小于或者等于num的子数组数量
- 子数组系列二:最大值减去最小值小于或等于 k 的子数组数量
- 左神的书——《程序员代码面试指南》之最大值减去最小值小于或等于num的子数组的数量 c++实现
- 栈和队列(8)-- 最大值减去最小值小于或者等于num的子数组
- 滑动窗口变形题-最大值减去最小值小于等于num的子数组
- 【算法】最大值和最小值的差小于或者等于num的子数组数量
- 未排序数组中累加和小于或等于给定值的最长子数组长度
- 数组与矩阵---未排序数组中累加和小于或等于给定值的最长子数组问题
- repo forall -c 用法
- D9循环语句
- JS获取url参数值的两种方式
- Java类与接口、类与类之间的六种关系及UML表示
- spring,shiro,redis实现session共享
- 最大值减去最小值小于或等于num的子数组数量
- win10,Matlab调用libsvm时缺少文件或无法找到编译器问题
- 分布式系统理论基础
- HTML5-localStorage 本地存储
- D11
- 1024 祝所有程序员节日快乐
- Cocoa编程指南
- Logistic回归与Softmax回归
- 转载: 用 C# 做人脸检测(基于EmguCV)