日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

大厂C++面试经验

發(fā)布時間:2024/3/24 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大厂C++面试经验 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大廠C++面經(jīng)

文章目錄

  • 大廠C++面經(jīng)
  • 前言
  • 一、字節(jié)跳動一面(90min):
  • 二、華為一面(60min):
  • 三、華為二面(80min):
  • 四、上海立芯(120min):


前言

本科雙非,已拿20k的offer,特來分享一波面經(jīng)


一、字節(jié)跳動一面(90min):

1、自我介紹
2、項目介紹:

  • 因為我的項目是基于人臉識別的,所以面試官問了具體的人臉?biāo)惴?#xff0c;我大致講了一下算法思路和算法流程
  • 有沒有做過并發(fā)測試?(沒。。)
  • 項目中遇到哪些問題,如何去解決的?
  • 人臉檢測的時間復(fù)雜度是多少?
  • 然后面試官和我探討了一下算法優(yōu)化問題,閑聊了不少人臉的東西(面試官知識面是真的碾壓我這個菜雞。。)
  • 最后面試官評價說:你這個項目有點意思(有點小開心)

3、八股文:

  • 和我說一下進程和線程的區(qū)別吧?
  • 你說進程擁有資源,那你能說一下具體有哪些資源嗎?
  • 你提到了PCB,那和具體我說一下PCB的內(nèi)部組成和實現(xiàn)吧(懵了一下,硬著頭皮說了個七七八八)
  • 你還提了一個進程有多個線程,那問題來了,你有沒有做過多線程并發(fā)?(只知道理論,沒怎么實際操作過)
  • 如何去解決多線程安全問題?(回答:用加鎖機制、互斥信號量等)
  • 如果用信號量的話,該如何去實現(xiàn)?(回答:PV操作)
  • 那PV操作為什么可以實現(xiàn)互斥呢?(回答:因為他們是原子操作)
  • 那能具體說一下如何實現(xiàn)原子操作嗎?(然后我就把PV的具體實現(xiàn)代碼說了一下,主要是有個阻塞隊列和喚醒操作)
  • 說一下http協(xié)議吧
  • http包的構(gòu)成是什么樣子的?
  • 你提到的發(fā)送報文和回復(fù)報文的具體有哪些組成或者字段呢?
  • 說一下你知道的常見的http的狀態(tài)碼(說了200、301、302、304、404)

4、算法:
給一個m*n的二維整型數(shù)組,各行之間可能有重復(fù)出現(xiàn)的數(shù)字,要求輸出所有在每
一行都出現(xiàn)的數(shù)(可能有多個):

我的想法是先每一行排序,然后用m個指針去找重復(fù)的數(shù)
面試官說思路沒問題,然后讓我手撕代碼,我沒撕出來。。不知道怎么去同時處理m個指針,最后結(jié)束時面試官和我說了一下我才反應(yīng)過來,我太菜了。。

5、反問:

  • 我哪里需要提升?(讓我多敲代碼。。我哭了)
  • 我的項目講解的怎么樣?(沒什么大毛病)

二、華為一面(60min):

1、自我介紹
2、項目:

  • 你在項目中的角色?(負責(zé)人)
  • 如何協(xié)調(diào)各個成員的工作分配?
  • 項目有沒有遇到什么問題,怎么解決的?
  • 我看你做了不少項目,你哪來的項目資源?(我說我大二時開始在老師工作室打工。。)
  • 項目并發(fā)量有沒有測過?

3、八股文:

  • 說一下你對linux的理解
  • 說一下多線程
  • 死鎖的原理是怎樣的
  • 死鎖的必要條件
  • 說一下你了解的數(shù)據(jù)結(jié)構(gòu)
  • 常見的排序算法你說一下吧
  • 快排什么時候用比較好?(說了一下快排的最好情況和最快情況,說了一下遞歸劃分子問題,然后準(zhǔn)備說一下快排的優(yōu)化問題,被打斷了。。)

4、算法
(算法我真的有點委屈,和我聯(lián)系的hr說最多機考前兩題的難度,問我行不行,我拍著胸脯說沒問題,結(jié)果一面的面試官看了一下我的簡歷,突然來一句:你搞過競賽對吧?那我們來一道難點的吧?。。我瞬間懵逼了。。)

我想了五分鐘,大致說了一下算法思路:先看所有數(shù)加和是否是4的整數(shù)倍,如果不是直接就false,如果是的話,先算出邊長,然后我們就不斷選取當(dāng)前木棍分別嘗試放在四條邊上,用分治的思想,劃分的子問題就是當(dāng)前剩余長度減去當(dāng)前選取的木棍長度,邊界就是當(dāng)木棍只剩下一根且正好能放入時則退出。
面試官說我的算法思路很好,然后又讓我手撕代碼,我又沒撕出來,只能和面試官說我太久沒碰過代碼了,手太生了,最后面試官讓我寫了個偽代碼,然后記錄下來交差了。。

5、反問:
我表現(xiàn)的怎么樣?(整體不錯,就是linux和多線程的東西要去了解一下,代碼的話,能看出來你的底子不錯,手生的話建議去LeetCode刷幾題撿起來。。)
我還有二面嘛?(這個我們得具體評估一下才能決定的)
PS:剛剛收到了二面邀請,后續(xù)面經(jīng)繼續(xù)補充。。

三、華為二面(80min):

1、自我介紹
2、項目:

  • 項目介紹
  • 人臉?biāo)惴ㄈ绾螌崿F(xiàn)的?(大致說了一下算法的思路和流程)
  • 用的什么語言?

3、八股文:

  • linux熟悉嗎?說一下
  • 多任務(wù)調(diào)度算法說一下
  • 堆和棧的區(qū)別
  • 你提到棧效率更高點,那為什么棧效率更高的?
  • 那如果兩個任務(wù)調(diào)用一同個代碼,它們的任務(wù)棧是什么樣的?
  • 匯編學(xué)過么?給一段代碼你知道它內(nèi)存怎么分配的嗎?
  • 計算機網(wǎng)絡(luò)了解不?說一下你了解的知識點。(說了rip、ospf、tcp三次握手四次揮手、tcp擁塞控制、滑動窗口機制,還準(zhǔn)備繼續(xù)說來著,然后面試官說夠了夠了。。)

4、算法題:

這題直接秒殺,大整數(shù)加法,注意進位變化就好了(最后一位可能也有進位)
但手撕代碼時頭結(jié)點和邊界內(nèi)存沒處理好,被面試官說了一通。。

大致代碼如下,不保證沒bug哈。。

ListNode* add(ListNode* l1,ListNode* l2) {if(l1==nullptr&&l2)return l2;else if(l2==nullptr&&l1)return l1;else if(l1==nullptr&&l2==nullptr)return nullptr;ListNode* l3=nullptr,*p=l1,*q=l2;ListNode* x=l3;int flag=0;while(p||q){ListNode* node=new ListNode;int t1,t2;if(!p)t1=0;else{t1=p->val;p=p->next;}if(!q)t2=0;else{t2=q->val;q=q->next;}node->val=(t1+t2)%10+flag;flag=(t1+t2)/10;if(!x)l3=node;else x->next=node;x=node;}return l3;}

4、反問:

  • 我哪里薄弱?(linux和內(nèi)存不太清楚,要多看多學(xué)多練)

四、上海立芯(120min):

(因為是偏算法方向的,兩輪技術(shù)面都是全程手撕算法,無任何前戲和八股文,但題目難度倒不是很難)

1、一道改編的二分查找,給一個數(shù)組,找到給定的元素位置,若該元素不存在則插入到數(shù)組的正確位置。

2、簡單dp,爬樓梯問題,LeetCode上有這題。(寫了遞歸和非遞歸,然后優(yōu)化成了計劃搜索)

3、改編的LCA問題,差點沒寫出來。。

4、手撕冒泡排序算法。

5、合并兩個鏈表。

6、二叉樹非遞歸的中序遍歷。

7、刪除鏈表的重復(fù)節(jié)點,注意有頭結(jié)點,并且頭結(jié)點也有數(shù)據(jù)(這題主要考察有沒有考慮頭結(jié)點以及如何去處理它)

(還有兩題我忘了。。全程手撕,還好基本都寫出來了。后面還問了一下項目,和前面兩個問的差不多,就不多寫了)

總結(jié)

以上是生活随笔為你收集整理的大厂C++面试经验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。