2022.4.19百度笔试记录

2022.4.19百度笔试记录,第1张

尝试了一下百度的笔试,记录一下过程。

首先是选择题,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);
        }
    }
}
第三题,登山凉亭

这个等想想再写。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/714102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存