腾讯安全客户端(电脑管家部门)一面

上来介绍部门,之后自我介绍

说了是个喜欢每天都学点新东西的人,然后平常也会在课余时间之外去做点项目方面的学习,比如Web项目做出来就是因为兴趣。喜欢结构性的东西,有一门课叫电路电子学一次考试是专业第二。其他也都还可以,就没了。

(下面的不太记得顺序了,应该是语言、操作系统、计网这样子的问法,没怎么问到项目,感觉是运气了,还是要多刷题多做项目了,不是每次都能有这样的运气的)

1、对称加密、非对称加密

2、五层模型、七层OSI,TCP、UDP之间差别,TCP的连接和确保数据传输成功方式(滑动窗口、GoBack-N)

3、SSL,HTTPS和HTTP具体加密在哪里

4、引用和一般的常量指针具体差别在哪里,内存上,我记得是4字节,不知道对不对,回头再看看相关文章

5、const限定的函数

6、内存泄漏检测方式(没答出来,昨晚刚好依据八股面经里一个面经去看了一篇相关文章,可惜没仔细看和记忆,感觉太亏了)

7、设计模式详细举例

7、STL容器特点,比如vector、set、map、pair、tuple这些

8、多态继承上面,子类调用父类函数,父类调用子类函数如何调用

9、malloc和new之间区别

10、堆和栈之间区别

11、windows下thread_create会有什么问题

12、进程线程之间区别

13、线程安全即加锁(全局变量修改)同步、异步

14、进程间通信方式(管道、消息队列、共享内存,不太清楚,说的是全局变量这种形式,消息队列问到了post_message和send_message)

15、一道算法题,没AC出来但大体思路是对的,ACM模式输入输出也调出来了,但结果上不太对,也没注意最后顺带写下delete函数,估计挂了(刷的也是平时刷题那种链表,估计面试官也在想出什么样的题比较合适,刚好之前问STL数据结构的时候说到了这个链表的构造写法,所以后面)

16、反问

感觉这次面试比较简单,基本和面经里面比较像了,时间1h20min左右,主要算法题我拖太长了,问问题大概30分钟,算法题做了40多分钟感觉(本来给的20分钟,我后面基本框架写了下,没调出来说想调出来再说就又给了10min,但是最后输出能正常输出了,就是结果不给面子。结束后和卖面试官说了下复制了下代码回去自己改了下才过,样例还是题目中最基本的样例了。这里知道时间的宝贵了。平时我早上刷题时都不把时间当时间,随便刷刷的,这下吃到苦头了),太菜了,面试官还专门帮我分析了下题目,当时确实大脑一片空白,感觉像缺氧了,但是代码整个逻辑其实还行,就是还是不够熟悉和太菜了吧

面试题如下:

定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。

输入: 1->2->3->3->4->4->5

输出: 1->2->5

当时所写代码如下:

cpp 复制代码
#include <iostream>
#include <string>
#include <map>
using namespace std;

class ListNode {
public:
    ListNode* next;
    int value;
    ListNode() {

    }
    ListNode(int val) {
        value = val;
    }
};
int main() {
    string s;
    cin >> s;
    //cout << s;
    ListNode* head = new ListNode();
    //cin >> head;
    ListNode* ncur = head;
    for (int start = 0; start < s.size(); start++) {
        int num;
        if (s[start] != '-' && s[start] != '>') {
            int last = start;
            for (; last < s.size(); last++) {
                if (s[last] == '-' || s[last] == '>') {
                    break;
                }
            }
            string ss = s.substr(start, last - start);
            num = stoi(ss);
            //cout << num << ' ';
            ncur->next = new ListNode(num);
            ncur = ncur->next;
            //cout << ncur->value;
        }
        // 读取次数过多
    }
    // 输入
    map<int, int> ma;
    ListNode* cur = head;
    ListNode* prev = head;
    ma[cur->value]++;
    while (cur && cur->next) {
        ma[cur->next->value]++;
        cur = cur->next;
        // cout << cur->value;
        // cout << ma[cur->value];
    }


    while (ma[head->value] > 1) head = head->next;
    // 定位开头位置
    prev = head;
    cur = head->next;
    while (cur && cur->next) {

        if (ma[cur->value] > 1) {
            prev->next = cur->next;
            cur = cur->next;
        } else
            cur = cur->next;
        if (ma[prev->next->value] == 1) {
            prev = prev->next;
        }
    }
    cur = head->next;
    while (cur) {
        cout << cur->value << ' ';
        cur = cur->next;
    }
    while (head) {
        ListNode* cur = head;
        head = head->next;
        delete cur;
    }
    delete head;
    return 0;
}

之后会需要修改下

相关推荐
JZC_xiaozhong7 小时前
多系统并行的权限治理难题:如何消除“权限孤岛”与安全风险?
安全·数据安全·etl工程师·iam·数据集成与应用集成·多系统权限管理·统一数据集成
北京聚信万通科技有限公司7 小时前
传输协议:AS3
服务器·网络·安全·电子数据交换·as3
互亿无线明明10 小时前
国际金融短信:如何为跨境金融业务构建稳定安全的消息通知链路?
java·python·安全·eclipse·django·virtualenv·pygame
白帽子凯哥哥12 小时前
转行网络安全学习计划与报班建议
学习·安全·web安全·网络安全·渗透测试·漏洞挖掘·网安培训
ReaF_star12 小时前
【基线】关于Debian的一些简单安全配置及验证
学习·安全·debian
kali-Myon13 小时前
快速解决 Docker 环境中无法打开 gdb 调试窗口以及 tmux 中无法滚动页面内容和无法选中复制的问题
运维·安全·docker·容器·gdb·pwn·tmux
黑客思维者13 小时前
为什么Linux常被提权操作?
linux·网络·安全
wanhengidc14 小时前
云手机存在哪些技术瓶颈
运维·服务器·安全·智能手机·生活
acrelgxy15 小时前
告别盲测,预见温度:安科瑞如何用无线技术革新变电站安全
分布式·安全·电力监控系统·智能电力仪表
智驱力人工智能15 小时前
加油站静电夹检测 视觉分析技术的安全赋能与实践 静电夹检测 加油站静电夹状态监测 静电接地报警器检测
人工智能·深度学习·算法·安全·yolo·边缘计算