字符數組這是一個面試問題I.如何排序的ASCII字符線性時間和恆定的空間
A string of ascii characters, in sorted order of their ascii values. You can overwrite the existing array
Aim for linear time and constant additional space
Use the fact that ascii has only 256 unique characters
我可以通過遞增細胞的計數完成線性時間複雜度,與細胞[I ] +256,然後做一個(cell [i]/256)+1,以獲得計數。然後,也許,打印出字符串。但這仍然是O(n)
空間,因爲我無法將輸出保存在與輸入相同的數組中。
此外,由於該方法的原型是,
public String sortCharacters(String str)
{
}
由於字符串是不可變Java中,是不是這個問題不可能解決的?
它看起來像這個問題本來是約一個char [],有人將其改爲字符串,但他們並沒有將所有記錄到「陣列「 –
請仔細看看** Radix Sort ** https://en.wikipedia.org/wiki/Radix_sort –
是的,'String'是不可變的,但是'StringBuilder','StringBuffer','char []'不是 –