滴滴笔试XOR,java代码
//二维数组,动态规划
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int []a = new int[n];
for(int i=0;i<n;i++){
int temp = sc.nextInt();
a[i] = temp;
}
int[][] f = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
f[i][j] = -1;
}
}
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
f[i][j] = ***(a, i, j);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
}
}
System.out.println(***m(f,n));
}
public static int ***(int[] a, int i, int j) {
if (i == j) {
return a[i];
}
int sum = a[i];
for (int k = i + 1; k <= j; k++) {
sum = sum ^ a[j];
}
return sum;
}
public static int ***m(int[][] f, int n) {
int sum = 0;
int ch = n-1;
for (int i = n-1; i >=0 ; i--) {
for (int j = ch; j >= i; j--) {
if(f[i][j] == 0){
sum++;
ch = i;
break;
}
}
}
return sum;
}
}
#滴滴#