某華科團隊的面試題目思路總結

2021-10-22 16:05:37 字數 1179 閱讀 3621

某華科團隊的面試題目:

總有大佬喜歡以誰誰比自己強,自己是倒數第幾來賣弱。現在,班上有n個人,有m個人說自己正排名第aia_

ai​,倒數排名第bib_

bi​, (存在有些人一樣強),那麼最多有多少人的話是互不矛盾的。

輸入樣例:

30 10

4 23

11 19

12 16

11 19

16 11

16 11

18 8

21 6

18 8

輸出樣例:

6資料範圍

1<=n,m<=105

10^5

1056個人分別為第1,6,7,9的人,和2,4,5中的任意兩個人

這也算是值得驕傲的一次思考過程。好歹自己把大體思路確定了,然後有點小細節需要注意,和別人討論之後,更堅定了自己的想法。

心路歷程:

晚上23:41分,接到某豬的題目,然後一開始一點思路都沒有,暴力都不會。

tag.1

然後發現有很多人並列是乙個突破點,所以怎麼根據前後的排名確定這個名次有多少個人並列,顯然是:ai+

bi−n

a_+b_-n

ai​+bi

​−n個人。

然後覺得這個問題和揹包問題有點像,不過似乎拓展了範圍,互相之間的排斥關係更加嚴格。可以把一組資料視為乙個區間,其擁有乙個權重和乙個容納量。只需確定怎麼安排區間,使得他們不互斥同時也權重和最大。這樣就確定了暴力的演算法。也就是窮舉所有的。。。反正可以優化了就是。

tag.2

然後發現,某個區間,他的aia_

ai​排名只會對於其後面的大於aia_

ai​的資料區間產生影響,那麼只需要動態規劃。從前向後排序,然後sis_

si​表示i個人能容納的最多的互不矛盾的說法。最後可以規劃到sns_

sn​,這樣就解決了複雜性的問題。

當然,最初對於資料的處理是很複雜的,因為矛盾的型別有非常多。細節很難列出了,不真正寫一遍是不能確定的。但是好在這個面試題目,最後加了一句,**如果較為複雜,就可以口述大致思路。

不過當我的知識儲備不足夠的時候,我只能想到動態規劃,有朋友想到了最大流的問題,但是同時也指出了可能會出現的交錯的問題,雖然他的思路是錯誤的,但是這也是我的能力所不能企及的。所以還是道阻且長。只評判乙個問題的解決與否,又怎麼能看出乙個人真正的實力呢。

重要的是想法。

面試題目總結

1.char p和char p的區別。1 char getstring void void main 2 char getstring void void main 為什麼 1 輸出的是亂碼,2 能夠輸出 hello world?hello world 作為靜態字串實際上儲存在文字常量區 參見 棧和...

面試題目總結

二叉樹相關面試題目 結點資料結構 typedef struct treenode 1.二叉樹的前序遍歷 遞迴void preorder treenode root vector res 非遞迴 vectorpreorder treenode root else 2.二叉樹中序遍歷 遞迴void mi...

面試題目總結

瀏覽器標準模式和怪異模式之間的區別是什麼 所謂的標準模式是指,瀏覽器按w3c標準解析執行 怪異模式則是使用瀏覽器自己的方式解析執行 因為不同瀏覽器解析執行的方式不一樣,所以我們稱之為怪異模式。瀏覽器解析時到底使用標準模式還是怪異模式,與你網頁中的dtd宣告直接相關,dtd宣告定義了標準文件的型別 標...