2022-12-17-孝庸基金-实习笔试-69min

24min+45min=69min

客观题 50'

  1. a,b,c三个任务优先级递减,同时到达,都需按顺序执行 10msCPU,13msIO,5msCPU,从c到达到完成c需要54ms

  2. -、*、$优先级递减,左结合运算,$指指数运算,5-3*2$2*4-3$2=256

  3. 123入栈有5种出栈顺序

  4. 仅当前类型能访问,用 private 关键字 仅当前程序集能访问,用internal 仅包含类或从包含类派生的类型能访问,用protected

int c=0,x=8421;
while(x){c++;x=x&(x-1);}

c=6

  1. i=0,两个线程分别执行i++100次后,i最大为200,最小为100

  2. 高h的完全二叉树最少 2h12^{h-1} 个节点,最多 2h12^h-1 个节点;4000个节点组成的二叉树最小高度是12

问答题(不能切屏、文本框写)

10+10+10+20

// 1,1,2,3,5,8,13,21,34,递归求第30位数
#include<iostream>
#define ull unsigned long long
ull f(int i, const int end, ull a, ull b){
    if(i==end) return b;
    return f(i+1,end,b,a+b);
}
int main(){
    std::cout<<f(2,32,1ULL,1ULL)<<std::endl;
    return 0;
}
// 不用基本加减乘除、不用额外空间,交换两个int的值

#include<iostream>
int main(){
    int32_t xy_num1;
    int32_t xy_num2;
    cin>>xy_num1>>xy_num2;
    xy_num1^=xy_num2;
    xy_num2^=xy_num1;
    xy_num1^=xy_num2;
    std::cout<<"xy_num1= "<<xy_num1<<", xy_num2"<<xy_num2<<std::endl;
    return 0;
}

private bool Is2Pow(int inputNumber){
    long cntOnes = inputNumber;
    cntOnes=cntOnes+(cntOnes>>1);
    cntOnes=cntOnes+(cntOnes>>2);
    cntOnes=cntOnes+(cntOnes>>4);
    cntOnes=cntOnes+(cntOnes>>8);
    cntOnes=cntOnes+(cntOnes>>16);
    if(cntOnes<2)return true;
    else return false;
}

#include<vector>  
​
​typedef pair<int,int> pii
​​
​class PriorityQueue{
    vector<pii> v;
public:
    PriorityQueue(){
       v.resize(1); // 下标为0的元素占位
    }

  // 值越小优先级越高
  void push(int val, int priority){
​        int i=v.size();
        v.emplace_back({priority, val});
​       while(i>1){
​            int fi=v<<1;
​            if(v[fi].first<priority){
​                swap(v[fi],v[i]);
​                i=fi;
​            }else break;
​        }
  }

  // 出队优先级最高的元素
    int pop(){
​        if(v.size()==1) return -1; // null queue
      int topOne = v[1].second;
​        v[1]=v.back();
​        v.pop_back();
​        int i=1;
​        while(i<(int)v.size()){
​            int li = i<<1, ri=(i<<1)+1;
​            if(li<(int)v.size()){
​                if(ri<(int)v.size()&&v[ri].first>v[li].first){
​                    li=ri;
​                }
​                if(v[li].first>v[i].first){
​                    swap(v[li],v[i]);
​                }else break;
​            }
​            i=li;
​        }
​        return topOne;
  }

  bool empty(){
      return (int)v.size()==1;  
  }

  int size(){
        return (int)v.size()-1;
  }
};
#实习.##C++实习##C++工程师##C++##实习笔试#
全部评论
客观题第6题最小值我感觉是2。线程A读0,线程B执行99次,回到线程A写1.然后反过来线程B读1,线程A执行99次,线程B写2.
5 回复 分享
发布于 2023-03-14 23:23 上海
第一题俺算的咋58
2 回复 分享
发布于 2023-01-09 14:24 河南
老铁,面试java岗算法题可以用c++写吗,平时刷题都是用c++
点赞 回复 分享
发布于 2022-12-25 20:56 山东
校友好,请问这个实习是指正式入职前要实习还是说是实习岗位啊
点赞 回复 分享
发布于 2022-12-18 17:00 上海
第三题错了 int count(int num) { num = (num & 0x55555555) + ((num >> 1) & 0x55555555); // 相邻两位上的1的和存在这两位上 num = (num & 0x33333333) + ((num >> 2) & 0x33333333); num = (num & 0x0F0F0F0F) + ((num >> 4) & 0x0F0F0F0F); num = (num & 0x00FF00FF) + ((num >> 8) & 0x00FF00FF); num = (num & 0x0000FFFF) + ((num >> 16) & 0x0000FFFF); return num; }
点赞 回复 分享
发布于 2022-12-17 01:41 上海

相关推荐

bg27强双非本,目前在学习golang后端gin框架部分,在b站找了一个轮子项目敲了一下,技术栈是gin&nbsp;+&nbsp;gorm&nbsp;+&nbsp;mysql&nbsp;+&nbsp;redis。我目前的想法是这一个月学习408和go八股以及刷算法然后在12月找个寒假实习然后大三下开始准备考研。我是考研意愿比较强烈,想问一下我是应该all&nbsp;in其中一个方向吗,我感觉我实习对我考研来说也是没什么帮助的好像。
牛客28967172...:毕业工作,考研,考公是完全不同的方向。 99%的人拼尽全力也只能把一个做好(能做好都已经是佼佼者了,比如进进大厂,考985或者考公) 如果你确定要考研可以不用学任何就业技术框架,也不用实习经验,刷题背知识点就行,但注意必须考92院校起步,因为这个年代双非硕毕业后完全不如双非本(互联网行业),可以说双非硕在互联网就业完全是负收益
投递哔哩哔哩等公司10个岗位
点赞 评论 收藏
分享
09-22 15:45
门头沟学院 Java
谁给娃offer我给...:我也遇到了,我说只要我通过面试我就去,实际上我根本就不会去😁
点赞 评论 收藏
分享
评论
10
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务