成年人在线观看视频免费,国产第2页,人人狠狠综合久久亚洲婷婷,精品伊人久久

我要投稿 投訴建議

有趣的面試題

時間:2021-01-18 12:38:05 面試試題 我要投稿

有趣的面試題

  面試題目:

有趣的面試題

  有n個數(shù),n-1個重復偶數(shù)次,1個出現(xiàn)奇數(shù)次,怎么找出出現(xiàn)奇數(shù)次的那個數(shù)

  這個問題是一個同事面試時問到的題目,我覺得很有趣,就拿來自己用了,題目的答案在最下面。

  在看這個問題前,先聊聊一個前端面試一個問題

  前端面試是否考察算法

  大概2年前,我在微博上面看到兩位大牛的爭論:

  @pureFE對@真阿當 說:阿當哥你好:我是一名在校學生,文科專業(yè)。前一段找實習的過程中注意到一些公司有算法要求。對于前端來說,專業(yè)知識的補習路線應該如何安排,應該像計算機專業(yè)那樣從C、數(shù)據(jù)結構等等開始嗎?對于前端開發(fā)者來說,專業(yè)知識應該達到何種程度才是合格?不知您能否指點一二,感激不盡!

  @真阿當: 前端在實戰(zhàn)中對算法和數(shù)據(jù)結構幾乎沒有要求,在你當下的境況學習這些知識對你找工作一點幫助也沒有。前端開發(fā)的門檻低,所以有很多非科班出身的人從這個領域進入IT圈,你無需為“非科班出身”背上壓力。為找工作的話,建議最快的路線是:先學css、后學一些基礎js書……

  @寒冬winter:100%反對。

  回復@真阿當: 阿當你經(jīng)常說前端工程師應該團結起來加強影響力,你就是這么讓大家加強的么?沒有算法能力,前端工程師怎么去實現(xiàn)新的交互效果?沒有數(shù)據(jù)結構知識,前端工程師怎么處理大數(shù)據(jù)?沒有這樣的能力,前端怎么去承擔更重要的職責?

  @真阿當:算了,不爭了,我該表達的都表達完了。求同存異。我的言論也只代表我個人看法,不保證一定是對的,各人有各人自己認同的發(fā)展路線。更傾向于哪種觀點,決策權在諸位自己手上,冷暖自知誰也替不了你。不要動不動就“誤人子弟”帽子扣下來,我擔不起,也不想擔。一家之言,說的是自己的真實感想。到此為止

  @真阿當回復@糕富帥是我的人生理想:恩,是的,我說過要想前端能走得遠一些,至少用原生js鍛煉半年以上。我說的是“如何成為一個高級工程師”,而不是“如何跨入門檻”。絕大多數(shù)公司在面試時只會看這個人“在這個領域的基本功”怎么樣,過不了這一關,跨不過入行的門檻。所以要先學會怎么通過面試。

  @寒冬winter:目前為止我好像沒聽說哪個前端因為學習計算機基礎知識耽誤了專業(yè)技能,從當年51js我認識的人來看,基礎好的無一例外幾年后立于行業(yè)頂點,而那些"順應市場"的人,不知去了哪里。實際上,這只關乎人的素質(zhì),舍棄了基礎節(jié)約的時間并不能用于其它知識或者英語。

  我這邊的答案也是需要的,直接舉一些例子:

  最近很火的框架reactjs,他的核心就是實現(xiàn)了一個虛擬dom,每次頁面的更新都能通過虛擬dom計算出最小變更內(nèi)容,從而達到頁面高效的刷新,實現(xiàn)最小diff的算法很關鍵

  騰訊在手機web上實現(xiàn)了利用localstorage存儲js,然后js實現(xiàn)增量更新的算法,達到每次刷新僅僅請求變更了的js內(nèi)容,這樣就解決了手機端流量寶貴和網(wǎng)速慢的問題,實現(xiàn)增量更新的算法很關鍵

  我剛來百度時,組內(nèi)有一位echart的貢獻者,在一次組內(nèi)分享中,一個大數(shù)據(jù)量儲存的優(yōu)化的問題,大概是下面這樣的數(shù)

  [100001, 100002, 100003 ...]

  在通過canvas繪圖時,會比較費內(nèi)存,然后他就使用時間換空間的方式處理如下

  [1, 2, 3 ...] 設定base 是100000

  這樣就解決了一定數(shù)據(jù)量內(nèi)存過大的'問題。

  我覺得上面的例子就足夠支撐算法在前端的重要性了,因為現(xiàn)在的前端不在僅僅是還原一些UI設計,做做交互了,實現(xiàn)一些功能了。

  現(xiàn)在的前端越來越復雜,涉及面越來越多,向后延生可以利用nodejs去做服務端(全棧工程師);平行延生可以用react native去做native的開發(fā);縱向延生,也會考慮webapp內(nèi)存泄露,性能調(diào)優(yōu),打包編譯,線上部署等等。

  這些東西研究的越深,對于計算機基礎知識的要求就越高,當然其中就包含了算法基礎。

  那么問題來了,如果我們對于算法沒有基礎怎么辦,其實我開始就是對算法沒有什么研究,也不知道怎么運用在工作中,只是后來的工作中,慢慢發(fā)現(xiàn)自己對于計算機一些基礎的匱乏,根據(jù)需要一點點補充的。

  第一次在前端接觸簡單的算法是在看一個桌球游戲的源碼時,游戲里面球的碰撞,反彈,加速度等,都是一些簡單的計算和物理知識,挺有趣的

  游戲github地址,我加了一些注釋

  https://github.com/tangguangyao/Snooker

  回到面試題,我們可以聊聊這個題目為什么我覺得挺不錯的

  1. 如果沒有算法基礎的人,如果思維不錯,至少能夠在一定時間內(nèi)給出一個比較笨的解決方案,然后給與一些提示,能夠引導到我期望的答案

  2. 對于有算法基礎的人,能夠大概說出幾種解決方案,在我們余下的溝通中,回答一個我期望的答案,甚至更好的答案

【有趣的面試題】相關文章:

世界500強有趣味面試題03-01

護士的面試題09-15

深圳海關的面試題04-12

企業(yè)計劃的面試題04-11

群碩的面試題04-11

谷歌的面試題目04-11

知名IT企的面試題04-11

金山的面試題目04-11

面試題的回答技巧03-29

刁鉆的面試題指導10-08