Problem#
題目給你兩個數字 n
和 k
問你: 由 n
個字母組成,所有字母加起來總和為 k
且字串字典序最小。
a=1, b=2, …, z=26
想法#
最優的答案是後面都是 z
前面都是 a
,先貪心找最後的 z
長度: 對於字串 Z = aa...z = 1*(a長度) + 26
假如 k 大於 Z
的話,則最後一定可以擺一個 z
,亦即 k >= 1*(n-1) + 26
。
接下來就都擺 a
,中間的字母(夾在 a
和 z
中間 e.g. “aa…x…zz”),就擺 'a'+(k-1)
- 時間複雜度: $\mathcal{O}(n)$
- 空間複雜度: $\mathcal{O}(n)$