后端开发岗 什么A卷
个人感觉,选择题难度挺大,回忆一下
涉及:
1、内核干预线程、进程切换?内核干预进程间通信?
2、prim生成最小树
3、先来先服务算法
4、矩阵连乘法
5、NP、NPC,这个我真的不知道什么鬼
6、收邮件的协议
7、linux的rpm包存放在哪?
8、5m邮件,摘要有多大?
9、pv操作
10、静态方法在哪?堆栈?
11、等待输入时,进程处于什么状态?
12、哈夫曼树、二分查找。。。
中间还混着Java、C++的题目
算法。
第一题 暴力 AC
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int i = in.nextInt();
String[] test = new String[i];
for (int j = 0; j < i; j++) {
test[j] = in.next();
}
int count = 0;
for (int j = 0; j < i; j++) {
String s = test[j];
if (s.length()>10) {
continue;
}
char[] chars = s.toCharArray();
int time = 0;
for (int k = 0; k < chars.length; k++) {
if (!(('a'<= chars[k]&&chars[k]<= 'z')||('A'<= chars[k]&&chars[k]<= 'Z'))) {
break;
}
time = time+1;
}
if (time != chars.length) {
continue;
}
count++;
}
System.out.println(count);
} 第二题,编程完毕!!!系统崩了!!!! 没有提及上 我也是暴力搞的,实在没想出这题有什么技巧
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int M = in.nextInt();
int[] arr = new int[N];
for (int i = 1; i <= N; i++) {
arr[i] = i;
}
int[] doth = new int[M];
for (int i = 0; i < M; i++) {
doth[i] = in.nextInt();
if (doth[i] == 1) {
arr = first(arr);
}
if (doth[i] == 2) {
arr = second(arr);
}
}
for (int i = 0; i < N; i++) {
System.out.print(arr[i] + " ");
}
}
private static int[] first(int[] arr) {
int start = arr[0];
for (int i = 0; i < arr.length-1; i++) {
arr[i] = arr[i+1];
}
arr[arr.length-1] = start;
return arr;
}
private static int[] second(int[] arr) {
for (int i = 0; i < arr.length; i +=2) {
int i1 = arr[i];
int i2 = arr[i + 1];
arr[i] = i2;
arr[i+1] = i1;
}
return arr;
}
}

全部评论
(6) 回帖