我有一個隨機數發生器,它生成1 to k
之間的數字。我也有int
類型的數組(即int[]
),其大小爲N
,其中k
小於N.保存排序中的元素的算法維護順序
現在的問題是我需要將唯一生成的數字保存到數組中(拒絕生成的重複數字)並且必須維護生成的數字的順序,而不使用任何額外的空間和複雜度。即我同樣的陣列我需要維護生成的數量的順序也。以便我可以按照生成的順序檢索它們。沒有位圖或額外的數組等是假設使用。
它不是一個功課。它是面試問題之一。我不應該使用任何額外的空間。他要求我使用k
小於N
的事實,並且您需要在同一陣列中灌輸hashmap的行爲。我提出了許多使用額外空間的算法,但他也拒絕使用排序,但我無法維持生成的順序。
如果我是你,我會1)保存我的元素到一個排序列表,2)當我完成時調用toArray()。 http://stackoverflow.com/questions/4031572/sorted-array-list-in-java。 PS:這聽起來像功課? – paulsm4
你能告訴我們到目前爲止你有什麼代碼嗎?你在考慮什麼方法? –
「*不使用任何額外的空間*」似乎是不可能的任務。即使是交換,你也需要需要4個字節的「int temp」。 –