《剑指offer》像素翻转
生活随笔
收集整理的這篇文章主要介紹了
《剑指offer》像素翻转
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:有一副由NxN矩陣表示的圖像,這里每個像素用一個int表示,請編寫一個算法,在不占用額外內存空間的情況下(即不使用緩存矩陣),將圖像順時針旋轉90度。
給定一個NxN的矩陣,和矩陣的階數N,請返回旋轉后的NxN矩陣,保證N小于等于500,圖像元素小于等于256。
測試樣例:
[[1,2,3],[4,5,6],[7,8,9]],3
返回:[[7,4,1],[8,5,2],[9,6,3]]
解析:思想是先上下對折,然后再沿對角線對折
原矩陣 順時針旋轉90度結果 // 1 2 3 7 4 1 // // 4 5 6 8 5 2 // // 7 8 9 9 6 3public static int[][] transformImage(int[][] mat, int n) {for(int i=0;i<n/2;i++){//上下翻轉for(int j=0;j<n;j++){ int temp =mat[n-1-i][j];mat[n-1-i][j]=mat[i][j];mat[i][j]=temp;}}int index=0; //只是翻轉上三角for(int i=0;i<n;i++){//對角線翻轉index=i;for(int j=index;j<n;j++){if(i!=j){//int temp =mat[i][j];mat[i][j]=mat[j][i];mat[j][i]=temp;}}index++;}return mat;}總結
以上是生活随笔為你收集整理的《剑指offer》像素翻转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指offer》数组中只出现一次的数字
- 下一篇: 《剑指offer》和为s的连续正数序列