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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

算法群模拟面试记录

發(fā)布時(shí)間:2023/12/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法群模拟面试记录 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一場(chǎng):2018年12月30日(周日),北京時(shí)間早上五點(diǎn)。

寫(xiě)在最前面:好不容易五點(diǎn)爬了起來(lái)圍觀(guān)mock,結(jié)果早上周賽睡過(guò)去了,唉。orz。

面試官:wisdompeak,同學(xué):littleRainRain

第一題:有個(gè)花圃矩陣 grid,size 是n * m,花圃上面的一個(gè)點(diǎn),坐標(biāo)是(x, y)上面可能有花,可能沒(méi)有花(沒(méi)有花的話(huà),矩陣上的值為0)。如果一個(gè)Q(x,y)上有花的話(huà),grid[x][y] = W, W代表這朵花的香氣,隨著距離這朵花越來(lái)越遠(yuǎn),花的香氣會(huì)逐漸減弱,減弱的關(guān)系和兩個(gè)點(diǎn)的曼哈頓距離成正比,比如在點(diǎn) P(x1, y1),能聞到在點(diǎn)Q的花的香味是 f = W / (abs(x- x1) + abs(y-y1))。輸入一個(gè)P點(diǎn)的坐標(biāo)(px, py),求在這個(gè)P點(diǎn),能聞到花的香味最重的點(diǎn)坐標(biāo)。

題解:直接二維矩陣遍歷就行。只有一點(diǎn)需要注意的就是曼哈頓距離為0的時(shí)候,0不能做除數(shù),怎么處理要問(wèn)面試官,不要自己yy。

follow-up,能不能讓算法更快一點(diǎn)?(其實(shí)我覺(jué)得這個(gè)問(wèn)法不是特別的優(yōu)秀,第一次聽(tīng)到了比較容易懵逼,如果我是面試者的話(huà)下面不知道該怎么接。直接問(wèn)具體條件有什么變化,還是新增了什么條件么)

我第一次聽(tīng)到follow-up有點(diǎn)懵逼,我還以為難道bfs能解...但是迅速的否認(rèn)了自己的想法,想象一下如果有個(gè)點(diǎn)距離給出的P點(diǎn)非常非常遠(yuǎn),但是它的W非常非常大,這個(gè)點(diǎn)也有可能是candidate。

后來(lái)面試官解釋了一下,假設(shè)這個(gè)花圃上面就幾朵花呢?然后調(diào)用query方法N次,如何加速這個(gè)算法(言下之意是這個(gè)矩陣是一個(gè)稀疏矩陣)

ok,那我們開(kāi)始預(yù)處理下矩陣,把有花的坐標(biāo)點(diǎn)給存下來(lái),存成一個(gè)數(shù)組,假設(shè)叫flowerCoor,然后每次query的時(shí)候就從flowerCoor里面取花的坐標(biāo),然后計(jì)算。

?

第二題:leetcode 837 New 21 Game

https://leetcode.com/problems/new-21-game/description/

面試官化簡(jiǎn)了一下這個(gè)題,他的問(wèn)題是桌面上有10張撲克牌,代表[1, 10]這個(gè)區(qū)間的數(shù)字,玩家一開(kāi)始有個(gè)基礎(chǔ)分?jǐn)?shù) score, 游戲開(kāi)始,score 代表現(xiàn)在點(diǎn)數(shù),如果 score < 17, 那么莊家隨機(jī)翻一張牌,累加score;如果 score 在[17, 21] 這個(gè)區(qū)間中,就代表莊家win;如果 score > 21 就代表玩家win。求玩家 win 的概率。

前面怎么討論的我有點(diǎn)記不清了,但是妹子說(shuō)了一句“這個(gè)題有點(diǎn)遞歸的意思”,然后就開(kāi)始遞歸做。遞歸可以做。(不知道如果遞歸寫(xiě)全對(duì)的話(huà),下面follow-up會(huì)不會(huì)擴(kuò)大規(guī)模考 dp。不過(guò)想不到 dp不知道是 hired 還是 weak hired 了)

lc遞歸會(huì)超時(shí),我加了記憶化遞歸也超時(shí)了 :( ,lc給的是 dp 解法。

mock的時(shí)候群里小伙伴有人說(shuō)這題和 688 很像:https://leetcode.com/problems/knight-probability-in-chessboard/description/

?

第三題:leetcode 636?Exclusive Time of Functions

https://leetcode.com/problems/exclusive-time-of-functions/description/

第三題有點(diǎn)類(lèi)似資源搶占調(diào)度的一道題。

?task 1:? start,? 0

?task 2:? start,? 2

?task 2:? end,? 3

?task 1:? end,? 4

?task 2:? start,?6

?task 2:? end,? 7

start, end just mean get schecduled, like process to CPU, only one cpu, so if task2 started, task 1 paused。

要求返回每個(gè)task占用cpu的時(shí)間。返回map也好,數(shù)組也好,都行。

用stack解,我還沒(méi)仔細(xì)想。我估計(jì)應(yīng)該是用一個(gè)變量或者pair存某個(gè)任務(wù)被中斷的時(shí)間?

?

第四題:leetcode 528. Random Pick with Weight

https://leetcode.com/problems/random-pick-with-weight/description/

群主給的就是有 N 個(gè)人種,每個(gè)人種的占比,實(shí)現(xiàn)一個(gè)算法,這個(gè)算法每次都會(huì)返回一個(gè)人種,在調(diào)用K(K是一個(gè)很大的數(shù))次的情況下,所有的返回值的比例滿(mǎn)足人種的占比。

given possibility like

chinese? 22%

american:? 5%

indian: 21%

...

各個(gè)概率之和保證為1,隨機(jī)選一個(gè),要求符合概率,如按22.333% sample chinese..

?

妹子一開(kāi)始想的有點(diǎn)類(lèi)似于基數(shù)了,就是比如說(shuō)chinese占了22%,American占了 5%,那我搞一個(gè) 100 個(gè)人的數(shù)組,前 22 個(gè)元素 代表 chinese, 23 ~ 28 個(gè)元素代表 american。然后 1 ~ 100 內(nèi)隨機(jī)一個(gè)隨機(jī)數(shù),求得。然后面試官反問(wèn),如果占比不是整數(shù)呢,比如 22.345676798878888%這種,那是不是要開(kāi)一個(gè)巨大的數(shù)組存這些數(shù)。于是這個(gè)思路走進(jìn)死胡同了。群里有小伙伴說(shuō),如果有個(gè) 0 ~ 1 的隨機(jī)數(shù)發(fā)生器就好了。我們可以這么思考,就是我們把概率數(shù)組求前綴和,然后隨機(jī)一個(gè) 0 ~ 1 的數(shù),在前綴和數(shù)組中二分這個(gè)數(shù)字就可以了。

題解:前綴和 + 二分。

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhangwanying/p/10199941.html

總結(jié)

以上是生活随笔為你收集整理的算法群模拟面试记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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