[(Grupo técnico vocacional) Respuestas a la 11ª competencia de demostración provincial de la Copa Blue Bridge] Dada una secuencia, ¿por cuánto tiempo es la secuencia de mayor aumento en la secuencia?

Título: secuencia ascendente

El problema se describe
  en la secuencia a [1], a [2],…, a [n], si a [i] <a [i + 1] <a [i + 2] <… <a [j], entonces Llame a [i] a a [j] una secuencia creciente con una longitud de j-i + 1.
  Dada una secuencia, ¿cuánto dura la secuencia creciente más larga de la secuencia?

Formato de entrada
  La primera línea de entrada contiene un número entero n.
  La segunda línea contiene n enteros a [1], a [2], ..., a [n], y los enteros adyacentes están separados por espacios para representar la secuencia dada.

Formato de
  salida La línea de salida contiene un número entero que indica la respuesta.

Entrada de muestra
7
5 2 4 1 3 7 2

Salida de muestra
3

Puntos principales

Al problema se le da una secuencia de números. Puede tener una secuencia creciente en la primera parte, y luego cortar, y luego hay una secuencia creciente. Debe comparar la longitud de la secuencia en ambos extremos.

Código

import java.util.Scanner;

public class 递增序列 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] array = new int[n];
        for (int i = 0; i < n; i++) {
            array[i] = sc.nextInt();
        }
        sc.close();

        int temp = array[0];
        int count = 1;
        int max = 0;
        for (int i = 1; i < n; i++) {
            if (temp < array[i]) {
                temp = array[i];
                count++;
            } else { //重新开始一段递增序列
                temp = array[i];
                max = Math.max(count, max);
                count = 1;
            }
        }
        System.out.println(max);
    }
}
Publicado 139 artículos originales · elogiado 129 · 20,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/weixin_43124279/article/details/105666516
Recomendado
Clasificación