我的作業是創建一個遞歸靜態方法,接收整數列表作爲參數。 假設有些元素的值爲0,我想將其切換爲5,則刪除值爲1的元素,並將值爲2的元素移動到結尾。其餘的保持原樣。遞歸,Arraylist
我可以想辦法做到不使用遞歸,但我怎麼才能解決這個問題,使用遞歸?
謝謝。
我的作業是創建一個遞歸靜態方法,接收整數列表作爲參數。 假設有些元素的值爲0,我想將其切換爲5,則刪除值爲1的元素,並將值爲2的元素移動到結尾。其餘的保持原樣。遞歸,Arraylist
我可以想辦法做到不使用遞歸,但我怎麼才能解決這個問題,使用遞歸?
謝謝。
您的基本情況是長度爲1的列表,很容易處理。
長度爲2的列表,其中您知道最後1個元素已經被處理,只是稍微難以處理。
應該可以管理一個長度爲N的列表,其中您知道最後的N-1個元素已經被處理。
所以,你可以做的是拿到列表,將列表減去第一個元素到下一個遞歸級別,然後當你得到處理後的子列表時,處理那個第一個元素。
@Steven Schlansker是對的,但是,這不是一個真正的遞歸友好任務。
這一點都不像是一個讓我自己遞歸的問題。這就是說,如果你急於這樣做,使用List.subList作爲一種方式來人爲地構造一個「遞歸」的情況(通過從前面砍掉元素)並使用一個空的列表的「基本」情況。
並且不要忘記最後應用排序。你可以在開始之前做到這一點,但最終做到這一點可以節省一點時間,因爲很可能會有更少的元素。 – 2010-12-01 08:51:31