你的位置:首頁 > 測試測量 > 正文

想如Google工程師一樣牛?15道問題你會嗎?

發(fā)布時間:2015-01-25 責(zé)任編輯:sherryyu

【導(dǎo)讀】如果能去Google工作或許是很多工程師的夢想,可是面試谷歌可不是那么容易的事情。網(wǎng)上給出了面試Google工程師必問的15道面試題,大家都來看看,看看你會不會,找找自己的缺陷在哪?
 
1.請寫出一個整數(shù)乘法的算法
 
挑戰(zhàn):
  
這是一個相當(dāng)開放性的問題,設(shè)計初衷是看看工程師是否會定義參數(shù)。編程語言是什么?是匯編語言嗎?
  
是:那么你得白手起家開發(fā)出一套基本運(yùn)算來。
  
否則的話:那就簡單了,只需將數(shù)字套進(jìn)去即可,因?yàn)榇蟛糠终Z言均支持?jǐn)?shù)學(xué)運(yùn)算。
 
2.合并兩個排序鏈表
 
挑戰(zhàn):
  
這類問題是 Google 面試問題的一個共同趨勢:找出解決問題的有效辦法。合并兩條鏈表是一般會在鏈表之間發(fā)生“沖突”(因?yàn)樗鼈兏髯杂刑囟ǖ拇涡?,而你的合并會把次序搞亂)你必須找出一種算法快速消除那些沖突。
  
3.給出一組區(qū)間(以秒計),讓你找出重疊的部分
 
挑戰(zhàn): Google 一般也會要你解決一堆數(shù)學(xué)問題。這些設(shè)計的意圖是讓工程師對問題進(jìn)行有效的思考,而不是僅僅知道如何對每個問題進(jìn)行編碼。此處的問題會要你實(shí)現(xiàn)一個聰明的數(shù)學(xué)技巧。
  
4.如果你有n個節(jié)點(diǎn)的列表,對于一個有向無環(huán)圖來說,最多可以有幾條邊?
如果你有n個節(jié)點(diǎn)的列表,對于一個有向無環(huán)圖來說,最多可以有幾條邊
挑戰(zhàn):
  
這是著名的數(shù)學(xué)問題旅行商(traveling salesman problem)問題的一個派生。這是一個不要求你找出聰明的數(shù)學(xué)算法而是要你拓展思路的數(shù)學(xué)問題。你必須在節(jié)點(diǎn)間畫線,條件只有一個:無論你從哪里開始,永遠(yuǎn)不要回到原點(diǎn)
  
5.在Java里面,finally、final和finalize的區(qū)別是什么?
 
挑戰(zhàn):
  
看看你知不知道這些術(shù)語。比方說,F(xiàn)inalize 處理的是“垃圾回收”,而 Finally 則是指向一個特定的錯誤。
  
6.從一大塊文本中去掉重復(fù)的行
 
挑戰(zhàn):
  
一個基本問題,看你是不是能估算出問題是否可以在有限的時間內(nèi)解決。這樣的問題通??梢圆扇”┝羰侄?,但卻有可能永遠(yuǎn)都無法解決。
  
7.給你一串字符,要你找出包含有給定字符集的最小窗口
 
挑戰(zhàn):
  
此類問題有許多解決方式,這完全取決于你選擇的算法是什么。Google 要找的是能選出更快算法的工程師。
[page]

8.寫一段程序計算出某字符串(/矩陣)是否另一字符串(/矩陣)的旋轉(zhuǎn)(/轉(zhuǎn)置)
 
挑戰(zhàn):
  
這個問題靠的是看你是不是能夠靈活掌握一些計算技術(shù)的轉(zhuǎn)義。比方說,“strings”一語通常是指由字符、單詞或可打印、可見的東西組成的多行字符串。不過同時也可以是矩陣(二維對象)及別的對象。你必須檢查看看它是不是可以旋轉(zhuǎn)(轉(zhuǎn)置),然后跟另一個進(jìn)行對比。
  
9.舊金山能容納多少個氣球?
 
挑戰(zhàn):
  
此類問題 Google 的面試官一般都會問到,目的是想看看你設(shè)定的“邊界條件”是什么樣的。這個問題有許多解決方式,可以通過添加限定條件來進(jìn)行簡化—比如說舊金山的面積,這種限定在進(jìn)行編程的時候是很重要的。
  
10. 粘滯位是什么?為什么要用?
 
挑戰(zhàn):
  
粘滯位是一個跟設(shè)置和權(quán)限有關(guān)的系統(tǒng)管理員術(shù)語。Google 想測試一下,看看你是否了解一些管理的細(xì)節(jié),而不是只會編程。
  
11.給出一組整數(shù),值范圍在很窄的區(qū)間,但是區(qū)間未明,如何找出其中位數(shù)?
 
挑戰(zhàn):
  
又是一個要你實(shí)現(xiàn)聰明的數(shù)學(xué)技巧的問題,離散數(shù)學(xué)課你有沒有認(rèn)真聽?這可不是什么簡單問題。
  
12.給出一組區(qū)間,找出交集數(shù)最多的一個
 
挑戰(zhàn):
  
現(xiàn)在 Google 要你確信知道自己檢查的是問題的正確部分,無視沒有價值的部分,這樣才能夠令算法更高效。13.100個整數(shù)組成的數(shù)組,次序被打亂。其中有一個數(shù)被拿掉了,把它找出來
  
13.100個整數(shù)組成的數(shù)組,次序被打亂。其中有一個數(shù)被拿掉了,把它找出來
 
挑戰(zhàn):
  
運(yùn)用另外一個數(shù)學(xué)技巧可以幾行代碼搞定。測試的目的是看看你是不是不僅知道用什么辦法,還知道如何實(shí)現(xiàn)代碼。
  
14.判斷某個數(shù)獨(dú)解決方案是否正確
 
挑戰(zhàn):
  
這個要你想出辦法用另一種數(shù)學(xué)技巧從算術(shù)上快速檢驗(yàn)解決方案。
  
15.給你一支股票的日價,找出一次買賣交易(buy-sell trading)如何操作才會損失最大
 
挑戰(zhàn):
  
這個問題非常棒,你必須竭盡所能,把所有的知識本領(lǐng)都用上。看看邊界條件(即挑出變動最大的股票價格點(diǎn))然后有效地算出波動最大的一次。
  
我們能想到的唯一像樣一點(diǎn)的辦法是暴力計算,把每一個股價都遍歷一遍。
 
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉