3651翻转后1的数量
3651翻转后1的数量
⭐️难度:简单
🌟考点:动态规划
📖
📚
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
static int N = 100010;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String str = " "+sc.next(); // 字符从下标1开始
int[][] f = new int[n + 1][3];
for (int i = 1; i <= n; i++) {
char x = str.charAt(i);
f[i][0] = f[i - 1][0] + x - '0';
f[i][1] = Math.max(f[i - 1][0],f[i - 1][1]) + (x ^ 1) - '0';
if(x > 1) f[i][2] = Math.max(f[i - 1][1],f[i - 1][2]) + x - '0';
}
System.out.println(Math.max(Math.max(f[n][1],f[n][2]),f[n][0]));
}
}
🍎笔记