續寫《程式設計師面試寶典——螺旋佇列解法解析》
先附上c++**,看懂的人可以不必看**下面的舉例說明了。
舉例說明:
假定要求座標為(1,-1)的數字的值。
1.確定圈號t。
t = max(|x|, |y|);
這裡|x| = 1, |y| = 1,所以t = max(1, 1) = 1。
2.確定圈t-1的最大值。
max(t-1) = (2t - 1)2 。
這裡max(t - 1) = max(0) = 1。
3.確定數字v的值
數字v的值 = 前一圈的最大值 + 順時針步長。
前一圈的最大值在第2步中已經求了,為1。
下面按照分類標準,求順時針步長。
邊長u = 2t = 2。符合上圖2~9圍成的是乙個邊長為2 的正方形。
座標(1, -1),首先按照4個分類的順序,不滿足前兩個分類的條件(y = t = 1,x = -t = -1),但它同時滿足後兩個條件(y = -t = -1, x = t = 1)。由於座標先滿足條件3,所以按照條件3的公式來計算:
順時針步長 = 3u + u/2 + x = 3 * 2 + 2/2 + 1 = 8
v = 前一圈的最大值+順時針步長 = 1 + 8 = 9。
解畢。這裡對順時針步長公式,做一下解釋,為什麼是這樣的呢?
所謂順時針步長,就是從前一圈的最大值位置數起,按照順時針方向沿著當前圈行走,需要走多少步能到達所求座標。
本例中,從1這個位置數起,沿著順時針方向依次走過2,3,4,5,……,9,每經過1個數字即走過1個步長,走到9走過了8個步長。
到達 邊y = -t上的數字,需要依次走過 邊x = t, y = t,x = -t 3邊,故順時針步長中有3u這一項。
u/2使得步長 到達 y = -t 與y軸的交點上,此時順時針步長就只與x座標相關了,x為1,則步長加1,x為-1,則步長-1.
其它3個順時針步長公式類推。
程式設計師面試寶典讀書筆記 螺旋佇列
面試例題 看清以下數字排列的規律,設1點的座標為 0,0 x方向向右為正,y方向向下為正。例如,7的座標為 1,1 2的座標為 1,0 3的座標為 1,1 程式設計實現輸入任何一點座標 x,y 輸出所對應的數字。分析 1 按題目意思建立座標系,如下圖所示 2 這個佇列是順時針螺旋向外擴充套件的,可以...
程式設計師面試寶典
據統計,80 的簡歷都是不合格的。不少人事管理者抱怨收到的許多簡歷在格式上很糟糕。簡歷應該如何做到在格式上簡潔明瞭,重點突出?求職信應該如何有足夠的內容推銷自己?如何控制長度,言簡意賅?相信讀了本章你會對簡歷的撰寫有乙個新的認識。2.1 簡歷注意事項 1 簡歷不要太長 一般的簡歷普遍都太長。其實簡歷...
《程式設計師面試寶典》摘記
簡歷注意事項 1.簡歷不要太長 中文簡歷壓縮在 2頁左右就可以把所有的內容突出了。一般來說學習經歷應該從大學開始寫起。2.如實填寫。3.不要過分謙虛,不要把自己的一切包括弱項都寫進去。4.求職簡歷上一定要註明求職的職位。根據所申請的職位來設計,突出你在這方面的優點。編寫乙份或者幾份有針對性的簡歷。5...