10.18 腾讯微信支付日常(凉经)

一面

1. 自我介绍
2. 网络
   1. TCP三次握手、四次挥手
   2. TCP和UDP区别
   3. 如何实现一个可靠的UDP(我直接回答了QUIC,以及哪些实现哪些策略让他稳定可靠)(文章推荐:https://juejin.cn/post/7428200842229006377#heading-0;视频推荐:https://www.bilibili.com/video/BV1fr4y1F7BD?spm_id_from=333.788.videopod.sections&vd_source=ea52eeafecc0fa82395b5b7600d5b266)
   4. Https解决了Http什么问题(下面是个大概,都需要展开说说)
      1. 信息加密:混合加密实现信息机密性,解决窃听风险
      2. 验证机制:摘要算法实现完整性,为数据生成独一无二的【指纹】,用于检验数据完整性,解决篡改风险
      3. 身份证书:将服务器的公钥放入数字证书,解决冒充风险
   5. TSL四次握手
   6. CA证书验证流程,存储在哪里?
3. 操作系统
   1. 线程和进程区别
   2. 进程通信方式
4. 数据结构
   1. 堆(数组实现,是一个完全二叉树结构)
   2. 排序算法的时间复杂度对比
   3. 排序算法哪些是稳定的,哪些是不稳定的
5. 算法
   1. 堆排序(pass)
   2. 螺旋数组
   3. 手撕HashMap
6. 讲解HashMap扩容
7. rehash和二次hash有什么区别(自己口误,给挖坑了)

二面

1. 自我介绍(面试官是老乡,寒暄了几句)
2. 算法
   1. 大数乘法(这个真忘了,一般碰到这种都是工具类写了,撕了20分钟,没写出来)
   2. leetcode上的一个中等dp(背包问题),具体是哪个找不到了。
3. 实习拷打
4. 项目拷打

二面一直拷打,回答一句,问一个,问到不会为止(已挂)

大数加法:

public String solve(String s, String t) {
    if (s == null || t == null || s.length() == 0 || t.length() == 0) {
        return null;
    }
    if (s.equals("0") || t.equals("0")) {
        return "0";
    }
    int[] nums = new int[s.length() + t.length()];
    // 计算乘积并累加到相应位置
    for (int i = s.length() - 1; i >= 0; i--) {
        for (int j = t.length() - 1; j >= 0; j--) {
            nums[i + j + 1] += (s.charAt(i) - '0') * (t.charAt(j) - '0');
        }
    }
    // 处理进位
    int carry = 0;
    for (int i = nums.length - 1; i >= 0; i--) {
        int temp = nums[i] + carry;
        nums[i] = temp % 10;
        carry = temp / 10;
    }
    // 构建结果字符串
    StringBuilder sb = new StringBuilder();
    int start = 0;
    while (start < nums.length &amp;&amp; nums[start] == 0) {
        start++;
    }
    for (int i = start; i < nums.length; i++) {
        sb.append(nums[i]);
    }
    return sb.toString();
}

大数乘法:
public String solve(String s, String t) {
        if (s == null || t == null || s.length() == 0 || t.length() == 0) {
            return null;
        }
        if (s.equals(&amp;quot;0&amp;quot;) || t.equals(&amp;quot;0&amp;quot;)) {
            return &amp;quot;0&amp;quot;;
        }

        int[] nums = new int[s.length() + t.length()];

        // 计算乘积并累加到相应位置
        for (int i = s.length() - 1; i >= 0; i--) {
            for (int j = t.length() - 1; j >= 0; j--) {
                nums[i + j + 1] += (s.charAt(i) - '0') * (t.charAt(j) - '0');
            }
        }

        // 处理进位
        int carry = 0;
        for (int i = nums.length - 1; i >= 0; i--) {
            int temp = nums[i] + carry;
            nums[i] = temp % 10;
            carry = temp / 10;
        }

        // 构建结果字符串
        StringBuilder sb = new StringBuilder();
        int start = 0;
        while (start < nums.length &amp;&amp; nums[start] == 0) {
            start++;
        }
        for (int i = start; i < nums.length; i++) {
            sb.append(nums[i]);
        }

        return sb.toString();
}
全部评论
牛哇,不过能手撕hashMap(红黑树)居然没做出大数相乘吗?感觉像是发挥失误了
点赞 回复 分享
发布于 2024-12-29 11:42 江苏
这么多算法
点赞 回复 分享
发布于 2024-12-25 17:39 日本
我靠,这也太难了
点赞 回复 分享
发布于 2024-12-25 00:42 北京
微信好多算法题。是本地ide写核心算法就行是吗
点赞 回复 分享
发布于 2024-12-23 12:49 江苏
佬是acmer吗
点赞 回复 分享
发布于 2024-12-21 22:35 湖南
手撕hashmap?
点赞 回复 分享
发布于 2024-12-04 22:24 北京

相关推荐

程序员小白条:学历GG,这个排版布局,还有行间距和字缩进不大行,女生自我要求应该更高才是,没内容,起码美观这块要做好
投了多少份简历才上岸
点赞 评论 收藏
分享
不是你先问的我吗!
Smiley_W:底薪是多少?薪资构成是怎样的?(底薪+绩效+提成?) 是否有年终奖/季度奖?发放标准和比例如何? 五险一金的缴纳基数和比例是多少?(是否按实际工资缴纳?) 薪资是税前还是税后?是否有其他补贴(餐补、交通补、住房补等)? 调薪机制是怎样的?(每年有固定调薪吗?依据什么标准?) 工作时间是几点到几点?是否弹性打卡? 是否需要加班?加班频率如何?是否有加班费或调休? 周末和节假日是否正常休息?是否有轮班或值班制度? 年假、病假等假期如何规定?请假流程是否复杂? 是否有明确的KPI或考核标准?考核周期是多长? 公司目前的发展阶段和未来规划是什么? 是否有裁员或业务调整的风险?近期人员流动性如何? 入职后是否有试用期?试用期时长和薪资如何? 是否需要签竞业协议或保密协议? 文案自取
点赞 评论 收藏
分享
评论
5
43
分享

创作者周榜

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