第一题:
package 打卡.标准;
import java.util.Scanner;
public class 连号区间数 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int arr[] = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
int ans = 0;
//枚举找最大的和最小的
for (int i = 0; i < n; i++) {
int max = arr[i];
int min = arr[i];
for (int j = i; j < n; j++) {
max = Math.max(max, arr[j]);
min = Math.min(min, arr[j]);
if (max - min == j - i)
ans++;
}
}
System.out.println(ans);
}
}
第二题:最长递增
方法一:
package fytyfytyu.模拟赛;
import java.util.Scanner;
public class 最长递增 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a[] = new int[n];
int maxlen = 0, r = 0, l = 0;
for (int i = 0; i < n; i++)
a[i] = sc.nextInt();
for (int i = 0; i < n; i++) {
int len = 0;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[j - 1])
break;
else {
len++;
if (len > maxlen) {
l = i;
r = j;
maxlen = len;
}
}
}
}
System.out.println(r - l + 1);
}
}
方法二:
package fytyfytyu.模拟赛;
import java.util.Arrays;
import java.util.Scanner;
public class 最长递增001 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner(System.in);
int n = sc.nextInt(),ans= 0;
int a [] = new int[n];
int dp [] = new int [ n ];
Arrays.fill(dp, 1);
for(int i = 0 ; i <n ; i++) a[i]=sc.nextInt();
for(int i = 1 ; i<a.length;i++) {
if(a[i]>a[i-1]) {
dp[i]=dp[i-1]+1;
}
ans = Math.max(ans, dp[i]);
}
System.out.println(Arrays.toString(dp));
System.out.println(ans);
}
}