亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何旋轉二維數組?

如何旋轉二維數組?

如何旋轉二維數組?受陳雷蒙德的職位,假設您有一個4x4二維數組,編寫一個將其旋轉90度的函數。Raymond鏈接到偽代碼中的解決方案,但我想看到一些真實的東西。[1][2][3][4] [5][6][7][8] [9][0][1][2] [3][4][5][6]變成:[3][9][5][1] [4][0][6][2] [5][1][7][3] [6][2][8][4]更新尼克的回答是最直截了當的,但有沒有辦法比n^2做得更好呢?如果矩陣是10000x10000呢?
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

這里是C#

int[,] array = new int[4,4] {
    { 1,2,3,4 },
    { 5,6,7,8 },
    { 9,0,1,2 },
    { 3,4,5,6 }};int[,] rotated = RotateMatrix(array, 4);static int[,] RotateMatrix(int[,] matrix, int n) {
    int[,] ret = new int[n, n];

    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            ret[i, j] = matrix[n - j - 1, i];
        }
    }

    return ret;}


查看完整回答
反對 回復 2019-06-19
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

O(n^2)時間與O(1)空間算法(沒有任何解決辦法,也沒有時髦的東西!)

旋轉+90:

  1. 轉座子
  2. 反轉每一行

輪換-90:

方法1:

  1. 轉座子
  2. 反轉每一列

方法2:

  1. 反轉每一行
  2. 轉座子

旋轉+180:

方法1:旋轉+90次兩次

方法2*反轉每一行,然后反轉每一列(轉置)

旋轉180:

方法1*輪調-90次兩次

方法2:反轉每一列,然后反轉每一行

方法3*旋轉+180,因為它們是相同的


查看完整回答
反對 回復 2019-06-19
  • 3 回答
  • 0 關注
  • 805 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號