簡體   English   中英

從索引 0 開始遞歸反轉數組

[英]Recursively reverse an array starting from index 0

我需要遞歸地反轉僅傳遞 2 個參數的數組,但似乎不起作用。 這就是我嘗試過的

private static void rotate(char[]a, int i){
    if(i==a.length){
        return;
    }else{
        char temp = a[i];
        a[i] = a[a.length - 1 - i];
        a[a.length - 1 - i] = temp;
        rotate(a, i+1);         
    }   
}

如果我通過類似 char[] x = {'a', 'b', 'c'}; 它將打印 cbc 而不是 cba。 怎么了?

您的遞歸退出條件不正確。 正確的是
if (i == a.length/2) { return; }

您將元素與數組末尾的相應元素交換。 當您到達陣列的中間時 - 所有工作都已完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM