/*
两重循环,如果是连号区间,那么区间长度必然 = 最大值 - 最小值
第二层循环的时候可以更新每个区间的最大值,最小值。中间的元素不需要考虑
*/
/*
暴力做法:在第二层循环时,每次多创建一个数组存放i~j之间的数,对其排序Arrays.sort(data,i,j+1)
然后再多一层循环判断d[k] + 1== d[k + 1]
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
static int n;
static int N = 10010;
static int[] data = new int[N];
public static void main(String[] args) throws IOException {
n = Integer.parseInt(in.readLine());
String[] init = in.readLine().split(" ");
for (int i = 1; i <= n; i++) {
data[i] = Integer.parseInt(init[i - 1]);
}
int res = 0;
for (int i = 1; i <= n; i++) {
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int j = i; j <= n; j++) {
max = Math.max(max, data[j]);
min = Math.min(min, data[j]);
if (max - min == j - i) {
res++;
}
}
}
System.out.println(res);
in.close();
}
}
我有一个需求:在订单表里面查询指定时间的订单数据,如果要是没有订单的话,需要展示当天日期和数据,数据为0
先看一下效果: 话不多说,直接上SQL
SELECTdate_range.date AS 日期,COUNT( oco.id ) AS 总订单…