腾讯新闻 一面

  1. 实现大数乘法
  2. array & vector & 数组
  3. 为什么有vector还需要array,array有什么vector没有的优点(数据存在堆还是栈)
  4. 为什么有普通数组还需要array,array有什么普通数组没有的优点(size())
  5. map & unordered_map
  6. 各自优缺点,使用场景,crud复杂度
  7. 快速排序复杂度
  8. 最好情况 nlogn
  9. 平均情况 nlogn
  10. 最坏情况 n^2
  11. 多线程
  12. linux 怎么创建线程 pthread_create(),各参数含义
  13. 线程数据结构有哪些内容(面试官想问的事可以在线程里存任务的阻塞队列异步唤醒)
  14. 怎么唤醒阻塞的线程(互斥量,条件变量)
  15. 阻塞队列(面试官提示可以用这个存放任务)
  16. 锁有哪些类型
  17. 无锁队列
// 将两个大数相乘,每个大数用字符串表示
std::string bigNumberMultiply(const std::string &num1, const std::string &num2) {
    int len1 = num1.size();
    int len2 = num2.size();
    std::vector<int> result(len1 + len2, 0);

    // 逆序处理每个字符,因为乘法是从低位开始计算
    for (int i = len1 - 1; i >= 0; i--) {
        for (int j = len2 - 1; j >= 0; j--) {
            int mul = (num1[i] - '0') * (num2[j] - '0');
            int sum = mul + result[i + j + 1];

            // 累加到结果中并处理进位
            result[i + j + 1] = sum % 10;
            result[i + j] += sum / 10;
        }
    }

    // 转换结果为字符串
    std::string resultStr;
    for (int num : result) {
        // 跳过前导0
        if (!(resultStr.empty() && num == 0)) {
            resultStr.push_back(num + '0');
        }
    }

    return resultStr.empty() ? "0" : resultStr;
}

全部评论
补充:thread数据结构里存std::function
点赞
送花
回复
分享
发布于 05-10 23:06 北京

相关推荐

点赞 2 评论
分享
牛客网
牛客企业服务