现在给出了一个由数字 0 和 1 组成的序列𝐴,它可能不是一个交错序列,但是你可以从这个 序列中选择一些数字出来,按他们在序列𝐴中原有的相对顺序排列(即选取𝐴的一个子序列), 使得你最后得到的是一个交错序列。问这样能得到的交错序列的最长长度是多少。
数据范围: ,序列中只包含 0 和 1。
第一行包含一个整数𝑛,表示输入序列的长度。第二行包含 𝑛 个 0 或 1,表示对应的序列。
输出能够得到的最长交错序列的长度。
3 0 1 0
3
8 1 1 0 0 1 1 0 0
4
import java.util.*; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = Integer.parseInt(in.nextLine()); ArrayList<Integer> list = new ArrayList<>(); int len = 1; for(int i=0; i<n; i++){ list.add(in.nextInt()); } int pre = list.get(0); for(int i=1; i<n; i++){ if(list.get(i) != pre){ len++; pre = list.get(i); } } System.out.println(len); } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; int count = 1; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); if (i > 0) { if (arr[i] != arr[i - 1]) { count++; } } } System.out.println(count); } }