• 成都精灵云笔试部分


        最近参加了成都精灵云的笔试与面试,岗位是c++工程师。后面自己复盘了过程,笔试部分总结如下,希望能对各位相进该公司以及面试C++工程师的同学提供一些参考。后续也会陆续分享各公司的面试和笔试经验在该专栏,想看的可以关注一下博主!

    后续

        初试部分

    考试形式

       笔试考了三道算法题,笔试形式为阅读题目,然后用中文给出算法思路,最后给出算法例程,分数各占一半,简单,中等,复杂各一道题

    第一题:英文句子翻转

       第一道题为简单题,给你一段字符串,以’.'结尾,要求你输出每句话单词呈相反顺序输出,但是每个字符串不一定只有一句话,可以有很多句话,输入类型为char *。例如:

    输入:"I am a programmer."
    输出:"programmer a am I."
    
    • 1
    • 2

       该题目要注意的就是空格的处理,整体思路就是用栈先进后出的特性,找到’.'作为一句话的结尾,对这句话先处理,之后再处理下一句话,最后的结果拼接即可。

    第二题:二分查找

       第二道题为中等题,给一个非递减排序的数列,找到指定的数并且该数的下标需要在原数列中最大。要求时间复杂度要在O(n)以下

       很显然这道题已经排序了,并且规定了时间复杂度为O(n)以下,自然而然想到用二分查找,二分查找的时间复杂度为O(logn),小于O(n)。

       但是要注意的是,在更新right下标的时候,不可以让right = mid - 1。因为已经保证了mid是不等于target的,但是无法保证mid-1是不等于target的。left可以是mid+1,因为我们要找的是最大下标。

       在找到后,我们需要从该地方开始,向上查找到最后一个不等于target的下标,减一即可得到答案的结果,遍历的右边界为right,因为right是直接等于mid的,而我们已经保证了mid是不会等于target的,因此一定能找到一个不等于的值,不会陷入死循环。

    第三题:LRU缓存

       第三道题是选做题,leetcode上的LRU缓存使用双向链表。

  • 相关阅读:
    坦克大战Netty网络联机版项目笔记
    【录用案例】CCF-C类,1/2区SCI&EI,3个月14天录用,30天见刊,11天检索
    C语言日记 37 类的友元(1)(全局函数做友元)
    [前端] 通过Vite创建项目
    百数SRM应用,一站式数字化管理供应商关系
    python配置到系统环境中
    【云原生】Kubernetes介绍
    谈谈JDK 漏洞 6260652
    CentOS8 安装Cloc代码统计工具
    Gateway--服务网关
  • 原文地址:https://blog.csdn.net/qq_43419761/article/details/132782802