面試之路2019 03

2021-09-24 16:11:05 字數 1477 閱讀 8072

2019-6-20

輸入: 乙個數字n

求數列【1,2,3,4,5,6,7,8,9,10,11,12,…】這個是乙個無限長的數列

在這個數列中,第n個數字是多少?

例如: n等於11的時候,輸出為 0, (10,11,12)都是算兩個數字

思路:這個題是對應的是 leetcode400 , 難度為easy… 信心受到打擊…

搞這個題的時候,說實話,心理還是相當緊張的,因為演算法一直不是我的強項,(如果一開始知道這個是easy級別的題目,說不定就沒這麼緊張了)

太緊張了,所以沒有辦法展開思維,什麼意思的呢?如果看到我草稿就能看出來:

1-9 9個數字 9位

10-99 90個數字 180位

其實再進一步已經可以看出規律了,但是由於我內心預期這個題很難,自我暗示我自己絕對做不出來,所以沒有繼續往下推演

如果繼續推算可以看出:

1-9 9個數字 9位

10-99 90個數字 180位

100-999 900個數字 2700位

1000-9999 9000個數字 36000位

大概推演4次,就可以看出規律了

1-9 9個數字 9位 = 1x9x(10^0)

10-99 90個數字 180位 = 2x9x(10^1)

100-999 900個數字 2700位 = 3x9x(10^2)

1000-9999 9000個數字 36000位 = 4x9x(10^3)

規律位 nx9x10^(n-1)

如果要計算第n位的話,首先要計算這個n落在哪乙個區間,比如:是落在 100-999這個區間的哪乙個,比如 200 這個數字

200-9-180 = 11

所以是在100-999中的第11位,100到999是由三位組成的,11/3 = 3 11%3 = 2 則 11 位是第4個數字的第二位

即 100 101 102 103 …

即 0

func

findnthdigit

(n int

)int

}

no := n/bit

c := n%bit

// 當前數字 = 前面過去的數字數量+這個區間內的數字數量

cur := all+no+

1// 比如n=0,是這個區間內的第1個數字

// todo 例如當前數字是 289 , 獲取第n位的方法,最簡單的應該是轉字串,取位再轉數字

return result

}

關鍵沒有想明白的,就是這個迴圈,心裡一直否定自己的這個想法,覺得這個想法還是太繁瑣了,其實竟然是正確的解決方案,果然是怯兵必敗

Vue Slot(插槽 2019 03更新

一般而言,我們元件的結構都是預先寫好的。但是我們開發過程中經常會碰到這麼乙個情況,引用子元件以後,我還想要在父元件使用子元件的時候,靈活地改變子元件裡面的內容。譬如,子元件裡面原本定義了乙個ul,然後使用v for的方式遍歷li裡面的span內容。此時,如果我們在子元件的li裡面如果是乙個slot,...

FZU Monthly 201903 獲獎名單

黃海東 s031702647 林閩滬 s131700309 陳華能 s221701416 鮑子涵 s031702646 吳少冰 s031802534 陳金傑 s031702334 羅繼鴻 s031702524 孔鋮晗 s031802115 鄭學貴 s031702338 張詠真 s031802540 ...

菜鳥面試之路(二)

這次的面試的職位是系統測試實習生,雖然沒怎麼接觸過測試,但是自己做專案的時候也有會對專案進行測試,因為目前還沒有確定自己未來的發展方向,所以,就先找著乙份實習做著,一邊工作一邊學習,而且自認測試這種工作我也可能會喜歡,並且對技術的要求不是很高,所以就去試試了。當天晚上發了簡歷之後,就去大概了解了軟體...