![240](https://cdn2.jianshu.io/assets/default_avatar/11-4d7c6ca89f439111aff57b23be1c73ba.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
根據(jù)用戶名(id)和權(quán)重抽獎(jiǎng) test_model運(yùn)行結(jié)果 權(quán)重: 1 此權(quán)重中獎(jiǎng)次數(shù): 49514權(quán)重: 2 此權(quán)重中獎(jiǎng)次數(shù): 96324權(quán)重: 3 此權(quán)重中獎(jiǎng)次數(shù): 14...
第二題你犯了太多的錯(cuò)誤,先說(shuō)對(duì)數(shù)據(jù)結(jié)構(gòu)的理解上。1 map本身就是無(wú)序的诸迟,只要是range取第一個(gè),然后break就是隨機(jī),沒(méi)必要全遍歷阵苇。2壁公,你都知道了map的長(zhǎng)度卻還使用slice而不是數(shù)組,性能會(huì)非常差绅项,因?yàn)閟lice要不挺的擴(kuò)容紊册,擴(kuò)容要找更大的連續(xù)內(nèi)存,并將原來(lái)的數(shù)據(jù)拷貝到新內(nèi)存快耿,你這樣數(shù)據(jù)量大的時(shí)候不僅時(shí)間幾何級(jí)數(shù)的增長(zhǎng)囊陡,還可能內(nèi)存不足。
再說(shuō)設(shè)計(jì)上的問(wèn)題掀亥,根本就不應(yīng)該將map轉(zhuǎn)成數(shù)組撞反,記住任何時(shí)候不要輕易的做這件事。而且你這題根本沒(méi)必要搪花,實(shí)現(xiàn)權(quán)重抽獎(jiǎng)只需要遍歷一遍map就可以了遏片,遍歷之前設(shè)置一個(gè)變量max存名字和最大隨機(jī)數(shù),遍歷的時(shí)候只要只要每次根據(jù)權(quán)重算個(gè)隨機(jī)數(shù)鳍侣,比max大就保留丁稀,這樣循環(huán)一次就搞定,根本不要這么復(fù)雜倚聚。
Gopher面試中的Coding從四月份下半月開(kāi)始线衫,陸陸續(xù)續(xù)面試了幾家公司,都是golang的崗位惑折。每一次面試授账,側(cè)重點(diǎn)都會(huì)有不同,有的會(huì)直接給過(guò)來(lái)一道試題惨驶, 然后邊解題白热,邊講述自己的思路,然后面試官根據(jù)你的...