栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2022.4.19百度笔试记录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022.4.19百度笔试记录

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

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

这个等想想再写。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号