科大讯飞笔试题9-17
科大讯飞这次笔试题还是出的比较用心,最后一题解方程没写出来
第一题:
加了一层padding去做
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int M = sc.nextInt(), N = sc.nextInt(), K = sc.nextInt(), L = sc.nextInt();
int[][] arr = new int[M+K/2*2][N+L/2*2];
int[][] kernal = new int[K][L];
int nM = M-K+K/2*2+1;
int nN = N-L+L/2*2+1;
int[][] res = new int[nM][nN];
for (int i = K/2; i < K/2+M; i++) {
for (int j = L/2; j < L/2+N; j++) {
arr[i][j] = sc.nextInt();
}
}
for (int i = 0; i < K; i++) {
for (int j = 0; j < L; j++) {
kernal[i][j] = sc.nextInt();
}
}
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
res[i][j] = getRes(arr, kernal, i, j, K, L);
if (res[i][j] > 255) res[i][j] = 255; if (res[i][j] < 0) res[i][j] = 0;
System.out.print(res[i][j] + " ");
}
System.out.println();
}
}
private static int getRes(int[][] arr, int[][] kernal, int i, int j, int k, int l) {
int sum = 0;
for (int p = 0; p < k; p++) {
for (int q = 0; q < l; q++) {
sum += arr[i+p][j+q] * kernal[p][q];
}
}
return sum;
} 第二题: 转化成最大岛屿
第三题:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int M = sc.nextInt(), N = sc.nextInt();
int[][] old = new int[M][N];
int[][] New = new int[M][N];
int[][] map = new int[M][N];
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
old[i][j] = sc.nextInt();
}
}
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
New[i][j] = sc.nextInt();
}
}
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
map[i][j] = New[i][j] - old[i][j] == 0 ? 1 : 0;
}
}
int res = 0;
int[][] orders = new int[][]{{0,1}, {1,0}, {0,-1}, {-1,0}};
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
if (map[i][j] != 0) {
int t = dfs(i, j, map);
res = Math.max(res, t);
}
}
}
System.out.println(res);
}
static int cnt = 0;
private static int dfs(int i, int j, int[][] map) {
if (i >= map.length || j >= map[0].length || i < 0 || j < 0) return 0;
if (map[i][j] != 0) {
map[i][j] = 0;
return 1 + dfs(1+1, j, map) + dfs(i-1, j, map) + dfs(i, j+1, map) + dfs(i, j-1, map);
}
return 0;
} 第三题:
解方程没写出来,有大佬写出来的求一个Java版本写法
#科大讯飞笔试#