我被困在如何将整个桌子旋转90度。所以如果我有一个像下面这样的2D数组
{
{0,0,1,0}
,{0,1,1,0}
,{0,1,0,0}
,{0,0,0,0}
}
什么是最好的旋转或转换该数组的整个表90度。所以后旋转应该看起来像这样
{
{0,0,0,0}
,{0,1,1,0}
,{0,0,1,1}
,{0,0,0,0}
}
答案 0 :(得分:2)
让我们调用第一个数组A和第二个数组B. 请注意,数组A中的一列成为旋转数组B中的一行(A中的第一列成为B中的第一行),A中第一列的第一个元素成为B中第一行的最后一个元素,第二个成为第三个,第三个成为第二个...... 所以我认为代码看起来像这样:
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
B[j][N-1-i]=A[i][j];
}
} // where N is the size of your array
我的解释&#34;可能有点令人困惑,但我希望代码可以工作
假设您的阵列A的大小是NxN,如果您的阵列不是正方形但是它的大小为NxM,那么B阵列的大小是MxN,代码中唯一改变的是: / p>
for(int j=0; j<M; j++)
在第二个&#34; for&#34;