2022-10-28-ht数据库笔试-110min

禁止任何人未经发件人许可以任何形式(包括但不限于部分地泄露、复制或散发)不当地使用本邮件中的信息

3个笔试题,word文件,72小时回复邮件即可,无监考。

// #include <iostream>
// #include <vector>
// #include <stack>
// int main()
// {
//     std::vector<double> v = {13.5, 13.6, 13.4, 13.3, 13.5, 13.9, 13.1, 20.1, 20.2, 20.3};
//     uint32_t n = v.size();
//     std::vector<uint32_t> maxArrLen(n);
//     std::stack<uint32_t> st;
//     for (uint32_t i = 0; i < n; i++)
//     {
//         while (!st.empty() && v[st.top()] <= v[i])
//             st.pop();
//         maxArrLen[i] = st.empty() ? i + 1 : i - st.top();
//         st.push(i);
//     }
//     for (uint32_t i = 0; i < n; i++)
//         std::cout << maxArrLen[i] << " ";
//     return 0;
// }

// #include <iostream>
// #include <cmath>

// int main()
// {
//     unsigned long long M1, M2, m1, m2, t = 0, n;
//     std::cin >> M1 >> M2;
//     m1 = M1;
//     m2 = M2;

//     if (m2 > m1)
//     {
//         unsigned long long out = m2 - m1; // n(1+n)=2out
//         n = (unsigned long long)(std::sqrt(1 + 8 * out) - 1) / 2;
//         unsigned long long c = (1 + n) * n / 2;
//         m2 = m2 - c;
//         t = n + 1;
//         if (c < out && m2 >= n + 1)
//         {
//             m2 = m2 - (n + 1);
//             t++;
//         }
//     }
//     else
//     {
//         unsigned long long out = m1 - m2;
//         n = (unsigned long long)(std::sqrt(1 + 8 * out) - 1) / 2;
//         unsigned long long c = (1 + n) * n / 2;
//         m1 = m1 - c;
//         t = n + 1;
//     }

//     // 接下来轮流地
//     // 从m1上申请t、t+2、t+4...t+2n个字节, t(n+1)+(2+2n)n/2=tn+t+n(1+n)=n*n+(t+1)n+t-m1<=0
//     // 从m2上申请t+1、t+3、t+5...、t+2n-1或t+2n+1个字节
//     if (m1 >= t)
//     {
//         n = (std::sqrt((t + 1) * (t + 1) + 2 * t + 1 + 4 * m1 - 4 * t) - t - 1) / 2;
//         m1 = m1 - (n * n + (t + 1) * n + t);
//         m2 = m2 - (n * n + (t + 1) * n + t + n + 1 - (t + 2 * n + 1)); // Bug:m2是无符号数,不能提前多减一个数再判断是否小于0再加上多减去的数
//         if (m2 >= t + 2 * n + 1)
//         {
//             m2 -= t + 2 * n + 1;
//             t += 2 * n + 2;
//         }
//         else
//             t += 2 * n + 1;
//     }
//     std::cout << "Answer: " << t << ", " << m1 << ", " << m2 << "\n";

//     // 验证程序
//     m1 = M1, m2 = M2, t = 0;
//     while (true)
//     {
//         if (m1 >= t && m2 >= t)
//         {
//             if (m1 < m2)
//                 m2 -= t;
//             else
//                 m1 -= t;
//         }
//         else if (m1 >= t)
//             m1 -= t;
//         else if (m2 >= t)
//             m2 -= t;
//         else
//             break;
//         t++;
//     }
//     std::cout << "GroundTruth: " << t << ", " << m1 << ", " << m2 << "\n";
//     return 0;
// }
// // 1000000000000000000 99999999999999999
// // Answer: 1483239697, 646162599, 717131344
// // GroundTruth: 1483239697, 646162599, 717131344

// // 只有一些if判断、加减乘除和开根号,时间复杂度可以看成O(1),如果按二进制位数来算时间复杂度是O(log(m1+m2))。

#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>

inline int lowBit(int x)
{
    return x & -x;
}

int main()
{
    std::vector<int32_t> v = {1, 3, 2, 3, 4};
    uint32_t n = v.size();
    std::vector<int32_t> r(n), a = v, t = v;

    // 离散化
    std::sort(t.begin(), t.end());
    for (int &num : a)
    {
        num = std::lower_bound(t.begin(), t.end(), num) - t.begin() + 1;
    }
    std::vector<int32_t> tree(n + 1, 0);
    for (uint32_t i = 0; i < n; i++)
    {
        int32_t q = a[i];
        q -= 1; // 不包括本身
        while (q)
        {
            r[i] += tree[q];
            q -= lowBit(q);
        }
        q = a[i];
        while (q < tree.size())
        {
            tree[q] += 1;
            q += lowBit(q);
        }
    }
    for (auto &i : r)
        std::cout << i << " ";
    return 0;
}
#23届秋招笔面经##笔试##23秋招##秋招##数据库#
全部评论

相关推荐

头像
04-27 15:11
已编辑
华东师范大学 算法工程师
暑期实习从2月开始投,面了两个月,流程该挂的都挂完了,腾讯字节一共号称是1.7w个hc,不知道都发给谁了,估计今年秋招要难顶。Timeline米哈游、美团、蚂蚁、微软等公司直接简历挂穿,没进面。携程:3.3&nbsp;投递、测评3.12&nbsp;笔试3.18&nbsp;一面3.25&nbsp;二面4.13&nbsp;ai面(hr面)4.14&nbsp;英语测评4.23&nbsp;offer(已拒)腾讯:2.6&nbsp;测评2.28&nbsp;wxg一面3.5&nbsp;wxg二面(挂)3.11&nbsp;teg一面3.21&nbsp;teg二面(取消)3.31&nbsp;teg一面4.10&nbsp;teg二面(挂)4.21&nbsp;wxg一面4.24&nbsp;wxg二面(挂)字节:1.28&nbsp;aml约面(取消)3.17&nbsp;火山一面(挂)4.8&nbsp;aml一面(挂)4.20&nbsp;抖音data一面(挂)阿里:3.23&nbsp;投递、测评3.28&nbsp;笔试3.31&nbsp;淘天一面4.8&nbsp;钉钉一面4.9&nbsp;淘天二面4.10&nbsp;阿里控股一面4.12&nbsp;钉钉二面(取消)4.15&nbsp;淘天hr面4.16&nbsp;淘天offer(已接)4.21&nbsp;高德一面(取消)4.22&nbsp;淘宝闪购一面(取消)面试最大的感触是,现在撞上ai转型,一堆老业务急着转向,新业务非常不成熟,研究型的组bar非常高根本进不去,业务侧挂着算法的岗位干的都是工程活,面试却又要问算法,另外agent的落地也远没有那么广,绝大多数还是那套写死的系统调一下llm&nbsp;api或者做做rag,其余少部分真的在搭agent的,基本不能在线上服务用什么很智能的模型,现阶段成本太高,进去大概率就是给垃圾模型从工程方面兜底,除了业务场景的应用和数据经验以外,技术方面很难有什么提升。算法岗做不了基模的还是去搜广推好,之前判断失误了完全没投,秋招不知道还进不进得去。
嵌入式的小白:不错啊,淘天也是挺好的,恭喜
我的求职进度条
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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