tema
[Descripción del problema]
En la secuencia a [1], a [2],…, a [n], si los subíndices i, j, k satisfacen 0 <i <j <k <n + 1 y a [i] <a [j] <a [k], entonces a [i], a [j], a [k] es un conjunto de triples crecientes y a [j] es el centro de los triples crecientes.
Dada una secuencia de números, cuántos elementos de la secuencia pueden ser el centro del triple creciente.
[Formato de entrada]
La primera línea de entrada contiene un número entero n.
La segunda línea contiene n números enteros a [1], a [2],…, a [n] Los números enteros adyacentes están separados por espacios para indicar una secuencia dada de números.
[Formato de salida] La
línea de salida contiene un número entero para indicar la respuesta.
[Entrada de muestra]
5
1 2 5 3 5
[Salida de muestra]
2
[Descripción de muestra]
a [2] y a [4] pueden ser el centro del triple.
[Escala y convención
de casos de uso de evaluación ] Para el 50% de los casos de uso de evaluación, 2 <= n <= 100, 0 <= número en la secuencia <= 1000.
Para todos los casos de evaluación, 2 <= n <= 1000, 0 <= número en la serie <= 10000.
Cometer errores
El centro del triple se calcula dos veces
Solución
Vuelva a asignar el a [j] calificado, y el valor asignado no puede ser mayor que 0 para evitar que se calcule dos veces
Código
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();//输入整数n
int arr[] = new int[n];
int count=0;
for(int i=0;i<n;i++){
//输入n个数
arr[i]=scanner.nextInt();
}
for(int k=0;k<n;k++){
for(int j=0;j<k;j++){
for(int i=0;i<j;i++){
if(arr[i]<arr[j]&&arr[j]<arr[k]){
//条件判断,将符合条件的a[j]赋值为-1(题目有要求数列中的数大于0,所以将符合条件的a[j]赋值为-1,-2,-3都行),防止二次计算
arr[j]=-1;
count++;
}
}
}
}
System.out.println(count);
}
}