程式設計師面試寶典 螺旋佇列解法解析2

2021-05-21 22:47:37 字數 968 閱讀 5575

續寫《程式設計師面試寶典——螺旋佇列解法解析》

先附上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...