• 成都精灵云笔试部分


        最近参加了成都精灵云的笔试与面试,岗位是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缓存使用双向链表。

  • 相关阅读:
    编译器的符号表管理
    MySql017——组合查询UNION和UNION ALL
    超简单的视频截取方法,迅速提取所需片段!
    视频一键转码:批量转换MP4视频的技巧
    Vue2 零基础入门 Vue2 零基础入门第三天 3.2 计算属性 && 3.3 vue-cli
    电脑重装系统后在Win11控制面板怎么打开?
    小白学java-微服务治理学习笔记
    IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!...
    墨子web3时事周报
    创建数据库
  • 原文地址:https://blog.csdn.net/qq_43419761/article/details/132782802