自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

每日算法:旋轉(zhuǎn)矩陣

開發(fā) 前端 算法
給你一幅由 N × N 矩陣表示的圖像,其中每個(gè)像素的大小為 4 字節(jié)。請(qǐng)你設(shè)計(jì)一種算法,將圖像旋轉(zhuǎn) 90 度。

[[431855]]

給你一幅由 N × N 矩陣表示的圖像,其中每個(gè)像素的大小為 4 字節(jié)。請(qǐng)你設(shè)計(jì)一種算法,將圖像旋轉(zhuǎn) 90 度。

不占用額外內(nèi)存空間能否做到?

示例 1:

  1. 給定 matrix =  
  2.   [1,2,3], 
  3.   [4,5,6], 
  4.   [7,8,9] 
  5. ], 
  6.  
  7. 原地旋轉(zhuǎn)輸入矩陣,使其變?yōu)? 
  8.   [7,4,1], 
  9.   [8,5,2], 
  10.   [9,6,3] 

示例 2:

  1. 給定 matrix = 
  2.   [ 5, 1, 9,11], 
  3.   [ 2, 4, 8,10], 
  4.   [13, 3, 6, 7], 
  5.   [15,14,12,16] 
  6. ],  
  7.  
  8. 原地旋轉(zhuǎn)輸入矩陣,使其變?yōu)? 
  9.   [15,13, 2, 5], 
  10.   [14, 3, 4, 1], 
  11.   [12, 6, 8, 9], 
  12.   [16, 7,10,11] 

思路: 按對(duì)角線反轉(zhuǎn)后再逐行倒序

  1. [                      
  2.     [1,2,3],      
  3.     [4,5,6],     =>    
  4.     [7,8,9] 
  5.  
  6.     [1,4,7],      
  7.     [2,5,8],     =>    
  8.     [3,6,9] 
  9.  
  10.     [7,4,1],      
  11.     [8,5,2],     =>    
  12.     [9,6,3] 
  1. /** 
  2.  * @param {number[][]} matrix 
  3.  * @return {void} Do not return anything, modify matrix in-place instead
  4.  */ 
  5. var rotate = function(matrix) { 
  6.     const n = matrix.length; 
  7.     //對(duì)角線反轉(zhuǎn) 0,0  n-1,n-1 
  8.     for(let i = 0; i < n; i++) { 
  9.         for(let j = 0; j < i; j++) { 
  10.             swap(matrix, [i, j], [j, i]); 
  11.         } 
  12.     } 
  13.  
  14.     //中線左右反轉(zhuǎn) 
  15.     for(let i = 0; i < n; i++) { 
  16.         for(let j = 0; j < n / 2; j++) { 
  17.             swap(matrix, [i, j], [i, n - 1 - j]); 
  18.         } 
  19.     } 
  20.  
  21.     function swap(matrix, [x1, y1], [x2, y2]) { 
  22.         const tmp = matrix[x1][y1]; 
  23.         matrix[x1][y1] = matrix[x2][y2]; 
  24.         matrix[x2][y2] = tmp; 
  25.     } 
  26. }; 

leetcode:https://leetcode-cn.com/problems/rotate-matrix-lcci

 

責(zé)任編輯:武曉燕 來(lái)源: 三分鐘學(xué)前端
相關(guān)推薦

2021-10-29 07:25:32

螺旋矩陣整數(shù)

2021-08-30 14:34:10

有效算法字符

2021-11-19 07:54:40

前端

2021-11-12 09:44:03

字符串算法復(fù)雜度

2021-09-30 09:58:14

路徑總和二叉樹

2021-11-04 09:59:03

動(dòng)態(tài)規(guī)劃策略

2021-09-03 09:41:36

字符串時(shí)間復(fù)雜度

2021-10-26 00:23:26

算法高頻元素

2017-02-08 09:25:16

Spark分解推薦

2021-10-27 10:43:36

數(shù)據(jù)流中位數(shù)偶數(shù)

2021-09-29 10:19:00

算法平衡二叉樹

2021-09-02 09:22:13

算法無(wú)重復(fù)字符

2021-09-08 09:52:34

語(yǔ)言

2021-09-10 08:31:54

翻轉(zhuǎn)字符串單詞

2021-09-15 07:56:32

二叉樹層次遍歷

2021-09-28 06:28:51

二叉樹公共祖先

2021-10-19 10:09:21

三角形個(gè)數(shù)數(shù)組

2024-07-16 12:54:40

2023-02-15 09:00:00

算法推薦系統(tǒng)矩陣分解算法

2021-08-26 05:08:25

相鄰重復(fù)項(xiàng)算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)