2017-08-23 125 views
1
public class Rotate 
{ 
public static int[][] rotateArray(int[][] orig) 
{ 
    int[][] neo = new int[orig.length][orig[0].length]; 
    for(int r = 0; r < orig.length; r++) 
    { 
     for(int c = 0; c < orig[0].length; c++) 
     { 
      neo[(orig.length - 1) - c][r] = orig[r][c]; 
     } 
    } 
    return neo; 
} 
} 

這個問題已經回答過了,但因爲我是新來的編程和我所知道的是Java,我無法跟隨我發現了最好的例子,因爲它在C#中。對不起,重複。 我命名新的旋轉陣列neo,因爲我想要原創和新的,但後來記住新不能用於名稱變量,所以我用neo這意味着新的:)試圖順時針旋轉90度的二維數組,但它會逆時針

+0

不要緊,如果它是c#或java,算法不是語言特定的。如果你已經有C#的解決方案,你可以按照他們的算法。 – want2learn

+0

這是不正確的:'int [] [] neo = new int [orig.length] [orig [0] .length];' –

+0

最好像這樣:int [] [] neo = new int [orig [0] .length] [orig.length];' –

回答

0

這是一個簡單的代碼示例修改。注意旋轉的數組維數和旋轉代數是如何改變的。

static int[][] rotateArrayCW(int[][] orig) { 
    final int rows = orig.length; 
    final int cols = orig[ 0 ].length; 

    final int[][] neo = new int[ cols ][ rows ]; 

    for (int r = 0; r < rows; r++) { 
     for (int c = 0; c < cols; c++) { 
      neo[ c ][ rows - 1 - r ] = orig[ r ][ c ]; 
     } 
    } 

    return neo; 
} 
相關問題