尝试了一下百度的笔试,记录一下过程。
首先是选择题,20道选择题,考的啥都有,Java,Linux,算法,SQL语句, *** 作系统,很乱很杂,都记不起来了,这里就不过多说了。
然后是三道编程题。
第一题:折纸第一道题是折纸,大致就是一个正方形,一直对折到一个数为止,题目花里胡哨,看完例子发现不就是求和嘛。
python的直接求和就行,Java不注意的话,通过率就是85,需要注意定义类型的时候要定义为long不能用int.
import java.util.Scanner;
public class first {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
in.nextLine();
int[][] map = new int[N][N];
for (int i = 0; i < N; i++) {
String[] str = in.nextLine().split(" ");
for (int j = 0; j < N; j++) {
map[i][j] = Integer.parseInt(str[j]);
}
}
long res = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
res += map[i][j];
}
}
System.out.println(res);
}
}
第二题:拾金币
具体的也记不清了,就是金币为0的时候没法走,要从起始点出发再回到起始点的过程中,最多能有多少金币。
import java.util.Scanner;
public class second {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int K = in.nextInt();
int[] num = new int[N];
for (int i = 0; i < N; i++) {
num[i] = in.nextInt();
}
int i = K - 1, j = K - 1;
if (num[K - 1] == 0) {
System.out.println(0);
} else if(num[K-1] == 1) {
while (i > 0){
i--;
if(num[i]==0 || num[i]==1) {
break;
}
}
while (j < N-1){
j++;
if(num[j]==0 || num[j]==1) {
break;
}
}
long sum1 = 0;
for(int l = i; l <= K-1; l++) {
sum1 += num[l];
}
long sum2 = 0;
for(int l = K-1; l<=j; l++) {
sum2 += num[l];
}
System.out.println(Math.max(sum1, sum2));
} else {
while (i > 0){
i--;
if(num[i] ==0 || num[i] == 1){
break;
}
}
while (j < N-1){
j++;
if(num[j] == 0 || num[j] == 1){
break;
}
}
long sum = 0;
for(int l = i;l <= j;l++){
sum += num[l];
}
System.out.println(sum);
}
}
}
第三题,登山凉亭
这个等想想再写。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)