zoukankan      html  css  js  c++  java
  • 美团面试-2020-11-11

    这次面试主要分为三部分:

    1、介绍项目

    2、基础知识

    3、现场写代码

    第一部分:

    介绍项目,这部分会问的很详细,包括:线程模型、架构、数据交互、网络,如何查找内存泄漏。

    第二部分:

    select和epoll区别,边缘触发、水平触发,惊群(这个词没听过),如何创建线程,线程之间的通信方式,sleep函数为啥会耗时(具体有哪些方式)。

    第三部分:

    (1)内存拷贝,但是可能存在src和dest重叠的情况,需要分别讨论。

    void *memmove(void* dest, void* src, int count) {
        if (src == dest) return dest;
        void *tmp = dest;
        
        if (src > dest || (int*)dest + count < src) {
            int i = 0;
            while(i < count) {
                *((char*)dest+i) = *((char*)src+i);
                i++;
            }
        } else {
            while(count--) {
                *((char*)dest+count) = *((char*)src+count);
            }
        }
        return tmp;
    };

    (2)给定无序数组,找到前k大的数。

    #include <iostream>
    #include <random>
    #include <queue>
    using namespace std;
    
    
    void getValue(vector<int>arr, int k) {
        if(k >= arr.size()) return ;
        priority_queue<int, vector<int>, greater<int>> pq;
        for (int i = 0; i < k; i++) {
            pq.push(arr[i]);
        }
    
        for (int i = k; i < arr.size(); ++i) {
            if (pq.top() < arr[i]) {
                pq.pop();
                pq.push(arr[i]);
            }
        }
        
        while(pq.size()) {
            cout << pq.top() << endl;
            pq.pop();
        }
        return ;
    }
    
    
    int main() {
        vector<int> arr = {1,2,3,4,5};
        getValue(arr, 3);
        
        return 0;
    }
  • 相关阅读:
    第一篇unity
    C#相关知识小结
    必须知道的八大种排序算法【java实现】
    JAVA八大排序算法
    二进制、八进制、十进制、十六进制之间的转换
    八大排序算法
    JSONArray数据转换成java List
    使用json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题
    一探前端开发中的JS调试技巧
    SpringMVC注解说明
  • 原文地址:https://www.cnblogs.com/xiaohaigegede/p/13961462.html
Copyright © 2011-2022 走看看