• 【牛客网-公司真题-前端入门篇】——2021牛客模考-卷1


    🦸个人主页: 小卢要刷力扣题
    🦸‍♂️ 作者简介: 大三学生,准备找工作的人儿
    🕍 推荐一款找工作神器网站: 《牛客网》 |笔试题库|面试经验|实习招聘内推|
    ⛪ 系列专栏: 《前端面试题》
    🐋 希望大家多多支持😘一起进步呀!
    📝 如果文章对你有帮助的话,欢迎评论💬点赞👍收藏📂加关注

    在这里插入图片描述


    前言

    秋招正式批已经到来,相信不少小伙伴在为找工作而烦恼,对自己的实力不太自信,感觉好难找工作,不用怕,下面我来给各位推荐一个知名刷题网站《牛客》

    一、牛客是做什么的?

    牛客网,是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站。牛客是领先的数字化招聘求职解决方案服务商,牛客向企业提供校园招聘技术人才招聘一站式解决方案服务,主要包括招聘渠道服务(发校招岗位收简历) ,招聘SaaS工具服务(笔、面试 、群面系统 ),招聘传播服务(技术竞赛、广告、线上招聘专场、牛客职播。
    牛客网题库中包含几万道题目,主要通过第三方购买和 UGC 的方式获得,牛客网先后尝试了直播和录播课,内容覆盖笔试题解析、面试技巧和机器学习等。

    在这里插入图片描述

    在里面可以与大家交流最近的面试心得,
    如果不知道怎么面试的或者面试技巧掌握得不够牢固的小伙伴可以在牛客里面找面经来看,快速提升自己的面试能力,以更快的找到自己心仪的工作

    在这里插入图片描述
    在这里插入图片描述

    2021牛客模考-卷1

    在这里插入图片描述

    在这里插入图片描述

    当时间片完,执行状态变为就绪状态
    因此选A

    在这里插入图片描述

    1.最佳适应:空闲区安容量大小递增
    2.最差适应:空闲区按容量大小递减
    3.最先适应:空闲区按地址大小递增
    4.最迟适应:空闲区按地址大小递减
    因此选C

    在这里插入图片描述

    replace具备替换拥有唯一索引或者主键索引重复数据的能力,也就是如果使用replace into插入的数据的唯一索引或者主键索引与之前的数据有重复的情况,将会删除原先的数据,然后再进行添加
    MYSQL中处理插入过程主键或唯一重复值的解决办法:
    1.IGNORE:有则忽略,无则插入
    2.REPLACE:有则删除再插入,无则插入
    3.ON DUPLIACATE KEY UPDATE:有则更新,无则插入
    因此选B

    在这里插入图片描述

    允许3个进程同时进入程序段,因此信号量S设为3.
    这里的信号量P操作应该是等待时,将其挂到信号量等待队列中,因此可以为负数。先对信号量执行减1操作,如果为负数,将进程添加到信号量等待队列,并挂起进程。
    本题中,当3个线程进入程序段后,S=0;第4个进程再想进入时,S=-1,因此取值范围是[3,-1](整数)

    在这里插入图片描述

    A在发送数据的过程中,A的cwnd大小始终没有达到阈值(16KB),所以A每经过一轮传输,cwnd就翻倍,所以A一共发送了1KB+2KB+4KB=7KB的数据,但是题目中说明了B并未从接收缓存中取出数据,所以B的接收缓存为8KB-7KB=1KB。A的发送窗口同时受cwnd和rwnd限制,即A=min{cwnd,rwnd},所以A的发送窗口为1KB

    在这里插入图片描述

    要对二叉树进行层次遍历,需要借助一个队列,先将二叉树根节点入队,完成初始化。下面出队并访问该节点,若该节点有左子树,将左子树根节点入队,若该节点有右子树,将右子树根节点入队,如此反复直到队列为空。
    当遍历到第三层的时候D弹出,HI进入,当时队列长度最长,为5

    在这里插入图片描述

    将普通的树转为二叉树的步骤如下:
    1.加线。在所有兄弟节点之间加一条连线
    2.每个节点都删除与自身子节点的连线,只保留与最左侧子节点之间的连线(这一点题目中已经说明)。
    转换过程如下图所示:

    在这里插入图片描述

    根据以上步骤可知,转换为二叉树后,b 可以为 a 的父节点,也可以为 a 的祖先节点。如果将 a 与 b 调换一下位置,不会破坏题目中的条件,即转换前 a 与 b 还是兄弟节点。此时 a 可以为 b 的父节点,也可以为 b 的祖先节点
    所以 选项A、C、D 均有可能。
    简单的可以概括为左儿子,右兄弟

    在这里插入图片描述

    先根据province分组,然后使用count()函数统计每个分组中所有的(即*表示)记录数,将每组的统计结果形成临时列并命名为count,然后使用order by count desc根据count列中的值对临时结果倒序排序,并使用limit 1限制只选择第一个结果。

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    es10之前是有7种数据类型,分别是Undefined、String、Null、Number、Boolean和Symbol的基本类型数据及Object的引用数据类型,但是在es10中新增了可表示任意精度整数的BigInt基本数据类型,即共8种
    基本数据类型的值不可变,存放于栈中,而引用数据类型是同时存放于栈和堆中,在堆中存对象值,栈中存对象指针,指向堆中该实体的起始地址。

    在这里插入图片描述

    在&&中,当前面的判断为false时,就不会执行后面
    在||中,当前面的判断为true是,就不会执行后面
    因此选D

    在这里插入图片描述

    在代码片段1中
    函数声明有提升现象,因此可以正常输出first
    在代码片段2中
    函数表达式不会提升
    因此会报错
    所以选D

    在这里插入图片描述

    book是通过Object.create(Book)创建的对象,此时book并没有自己定义的属性,只有从Book继承得来的price及原型上的公共属性,而delete操作是用于删除对象自定义的属性,显然price是不可删除的,而type是book自定义的,可被删除,所以当执行以上代码后,book.price = 32, 而book.type = undefined
    delete操作符可以删除隐式的全局变量、对象的自定义属性,而不能删除显示声明的全局变量,对象的内置和继承属性,而且在严格模式下,删除不能删除的变量或属性时,直接抛出异常

    在这里插入图片描述

    一般情况下,也就是非严格模式下,函数的arguments数组里面的内容是会随着函数内赋值而变化的,而改变arguments也会改变abc的值。
    而为函数形参赋予初始值这个行为会强制该函数内启用严格模式,因此arguments中的c是不会随着c被赋值而改变的。故func1中,调用side会让a被赋值1,而func2中会赋值10.
    因此选C

    在这里插入图片描述

    此时的 n && 是利用了&&的短路性质 如果n为true的逻辑判断通过才会执行后面的代码
    可以改写为

    int func(int n){
        if(n){
            n += func(n-1);
        }
        return n;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    ——子网掩码的读法——
    把子网掩码转换成二进制,看到有多少个1斜杠/后面就填写多少数字
    例如:192.168.1.0
    255.255.255.0转换成二进制后为11111111.11111111.11111111.00000000里面共有24个1则可以写成
    192.1681.0/24

    ——回到本题——
    前面三个字段每个8个字节,一共24个字节都一样,不用看,只需要关注最后一个字段的八个字节,也就是218
    218也即1101 1010
    而 28 - 24 = 4,只需要看1101 1010的前四个字节,也就是1101****
    因为1101 0000(208)<1101 ****<1110 0000(224),所以只能选D。

    在这里插入图片描述
    在这里插入图片描述

    因此选B

    在这里插入图片描述

    ①③④可由深度优先遍历得到,①②可由广度优先遍历得到,所以选C

    在这里插入图片描述

    limit是mysql的分页函数,可以快速选中我们想要的数据
    它的用法主要是两种
    limit x,表示选中前x条数据
    limit x,y表示选中第x+1到x+y条数据,或者理解成从第x+1条数据开始(包括第x+1)往后的y条数据
    因此只有limit 15,5表示第16到20的数据

    在这里插入图片描述

    ●如果每个节点的值都大于等于左右孩子节点的值,这样的堆叫 大顶堆;
    ●如果每个节点的值都小于等于左右孩子节点的值,这样的堆叫 小顶堆。
    堆是一个完全二叉树:将序列按照从上到下,从左至右构建二叉树:第一层(3);第二层(45);第三层(5596).可以看出是小顶堆

    在这里插入图片描述

    我们的目的是让左边都为1,右边都为0。通过一次遍历,计算每个位置包括自己在内,左边有多少个0,右边有多少个1,两者之和减去1(减去1是因为当前位置的颜色不改)就是颜色边界为当前位置时的刷墙代价。再遍历一遍枚举颜色边界的可能性,计算出最小代价就行。

    import java.io.*;
    import java.util.*;
    public class Main{
        public static void main(String[] args) throws IOException{
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            int n=Integer.parseInt(br.readLine());
            char[] wall=br.readLine().toCharArray();
            int[] left=new int[n];
            int[] right=new int[n];
            for(int i=0;i<n;i++){
                if(i==0){
                    left[i]=wall[i]=='0'?1:0;
                    right[n-i-1]=wall[n-i-1]=='1'?1:0;
                }else{
                    left[i]=left[i-1]+(wall[i]=='0'?1:0);
                    right[n-i-1]=right[n-i]+(wall[n-i-1]=='1'?1:0);
                }
            }
            int cost=n;
            for(int i=0;i<n;i++){
                cost=Math.min(cost,left[i]+right[i]-1);
            }
            System.out.println(cost);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这里插入图片描述

    1.遍历字符串,计算3人的得分:统计出每个人字符串的字母众数mode,如果n+mode能够大于等于字符串的长度(因为总可以通过修改一些非众数字母,把多余的操作次数给消耗掉,使得剩下的操作次数能够把字符串中的所有字母都改成众数字母),得分就是这个字符串的长度;否则得分就是n+mode。
    2.判断是否存在多个最高分:有就输出平局,没有就输出胜者。

       var n = readline()
        // var Ming='treasurehunt'
        var Ming = readline()
        var mingObj = {}
        // var Wang='threefriends'
        var Wang = readline()
        var wangObj = {}
        // var Li='hiCodeforces'
        var Li = readline()
        var liObj = {}
    
        function setObj(str, obj) {
            for (var i = 0; i < str.length; i++) {
                if (!obj[str.charAt(i)]) {
                    obj[str.charAt(i)] = 1
                } else {
                    obj[str.charAt(i)]++
                }
            }
        }
        setObj(Ming, mingObj)
        setObj(Wang, wangObj)
        setObj(Li, liObj)
        var mingCount = 0
        var wangCount = 0
        var liCount = 0
        
        function findMax(n,str,count, obj) {
            for (var i in obj) {
                if (obj[i] > count) {
                    count = obj[i] 
                }
            }
            if(n>str.length-count){
                count=str.length
            }
            return count
    
        }
        mingCount=findMax(n,Ming,mingCount, mingObj)
        wangCount=findMax(n,Wang,wangCount, wangObj)
        liCount=findMax(n,Li,liCount, liObj)
        
        var max=Math.max(mingCount, wangCount, liCount)
        var arr = []
        arr.push(mingCount, wangCount, liCount)
        if (arr.indexOf(max) !== -1&&arr.indexOf(max)==arr.lastIndexOf(max)) {
            if (mingCount == max) {
                console.log("xiaoming");
            } else if (wangCount == max) {
                console.log("xiaowang");
            } else {
                console.log("xiaoli");
            }
        }else{
            console.log("draw");
        }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    在这里插入图片描述

    来到第关时,前关的按钮已经记住了,但在本关会失败次,本关每失败一次,前面的关还需要重新走一遍(能来到本关,说明前面关卡的通关按钮已经记住,可以一遍速通)。因此来到本关后要试出本关的通关按钮需要次,可以得到递推计算公式,注意最后还要加上一遍速通消耗的按钮数。

    import java.util.*;
     
     
    public class Solution {
        /**
         * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
         *
         * 
         * @param buttons int整型一维数组 
         * @return long长整型
         */
        public long findMaxButtons (int[] buttons) {
            // write code here
            long res = buttons.length;
            for(int i = 0; i < buttons.length; i++){
                res += (long)(buttons[i] - 1) * (i + 1);
            }
            return res;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    在word中将latex格式的公式转化为带有编号的mathtype公式
    [Arduino电子近源渗透] Night of 19 v1.2.0
    Python_ithheima_第二阶段
    基于React实现:弹窗组件与Promise的有机结合
    docker 1.2 之docker基本用法
    pgsql查询分组中某个字段最大或者最小的一条数据
    MySQL_生产环境中concat用法及功能实现
    adas自动驾驶叉车CAN通讯隔离EMC解决方案
    前端懒加载
    ps 让图片附着在文字上
  • 原文地址:https://blog.csdn.net/xiaolu567/article/details/126531731