摘要:交換法復雜度時間空間思路為了實現這題,我們要用交換的方法,順序是左上先和左下交換,然后左上和右下交換,然后左上和右上交換。和類似,我們通過圈數來控制內外的順序。代碼計算圈數左上和左下交換左上和右下交換左上和右上交換
Rotate Image
交換法 復雜度You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up: Could you do this in-place?
時間 O(NN) 空間 O(1)
思路為了Inplace實現這題,我們要用交換的方法,順序是左上先和左下交換,然后左上和右下交換,然后左上和右上交換。和Spiral Matrix類似,我們通過圈數來控制內外的順序。
代碼public class Solution { public void rotate(int[][] matrix) { // 計算圈數 int n = matrix.length, lvl = n / 2; for(int i = 0; i < lvl; i++){ for(int j = i; j < n - i - 1; j++){ // 左上和左下交換 swap(matrix, i, j, j, n - i - 1); // 左上和右下交換 swap(matrix, i, j, n - i - 1, n - j - 1); // 左上和右上交換 swap(matrix, i, j, n - j - 1, i); } } } private void swap(int[][] matrix, int i1, int j1, int i2, int j2){ int tmp = matrix[i1][j1]; matrix[i1][j1] = matrix[i2][j2]; matrix[i2][j2] = tmp; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64644.html
摘要:每一次的旋轉,其實都是正方形上的四個元素之間的相互替換。所以本質上我們只需遍歷每種長度正方形上的一條邊,就可以完成這個正方形的旋轉。最后實現整個數組矩陣的旋轉代表正方形的起始位置,即,,即,代表當前正方形上的一條邊上的一個點。 題目要求 You are given an n x n 2D matrix representing an image. Rotate the image b...
摘要:題目詳情這道題目要求我們對一個正方形矩陣進行順時針度的翻轉。并且要求不聲明額外的空間,不能新建二維數組。輸入數組旋轉后的輸入數組想法這道題因為要求在位。所以我們需要找到一種解法,使得每次操作都是交換兩個元素的位置,最后實現整個矩陣的旋轉。 題目詳情 You are given an n x n 2D matrix representing an image.Rotate the ima...
摘要:下上傳圖片被旋轉解決方法用既然是解決問題,那就簡單說一下,直接上代碼方式使用在上可以直接調用照相機拍照,豎拍出來的圖片都會變成橫圖思路獲取到照片拍攝的方向角,對非橫拍的照片使用的進行角度旋轉修正。 iOS下html上傳圖片被旋轉 解決方法用exif.js+canvas既然是解決問題,那就簡單說一下,直接上代碼! html方式使用在iOS上可以直接調用照相機拍照,豎拍出來的圖片都會變成橫...
閱讀 2351·2021-11-25 09:43
閱讀 2864·2021-11-24 09:39
閱讀 2926·2019-08-30 11:10
閱讀 1130·2019-08-29 16:34
閱讀 595·2019-08-29 13:25
閱讀 3358·2019-08-29 11:21
閱讀 2861·2019-08-26 11:39
閱讀 2394·2019-08-26 11:34