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

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

檢索放入HashMap中的數組

檢索放入HashMap中的數組

蠱毒傳說 2021-05-08 18:15:33
下面的代碼是我為一個問題編寫的答案,該問題要求將nxn 2D矩陣旋轉90度(順時針),而無需創建新的2D數組。例如Given input matrix = [  [1,2,3],  [4,5,6],  [7,8,9]],rotate the input matrix:[  [7,4,1],  [8,5,2],  [9,6,3]]我試圖逐行執行此操作,但是必須處理的問題是如果該對索引已更改,該怎么辦。因此,如果我嘗試將索引對[1,2]分配給[0,1],但是[0,1]之前已經更改過。我想出的解決方案是使用HashMap,將索引對放入數組中作為鍵,并將原始數字作為值。這是我的代碼public void rotate(int[][] matrix) {        int n = matrix.length;        HashMap<int[], Integer> map = new HashMap<>();        for(int i = 0; i < n; i++){            for (int j = 0; j < n; j++){                if(map.containsKey(new int[]{n-j,i})){                    matrix[i][j] = map.get(new int[]{n-j, i});                }                else{                    int temp = matrix[i][j];                    matrix[i][j] = matrix[n-j][i];                     map.put(new int[]{n-j,i}, temp);                }            }        }      }但是,結果表明if(map.containsKey(new int[]{n-j,i})){                    matrix[i][j] = map.get(new int[]{n-j, i});                }這行代碼不是在搜索我之前放入的數組。我知道我每次都在創建一個新數組,但是它如何使containsKey不知道該數組是否包含相同的數字(相同的數組)?誰能幫助我了解為什么在此處使用數組標記索引對在HashMap中不起作用?
查看完整描述

2 回答

  • 2 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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