iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
AI & Data

想到甚麼打甚麼系列 第 22

找LeetCode上簡單的題目來撐過30天啦(DAY22)

  • 分享至 

  • xImage
  •  

題號:48 標題:Rotate Image 難度:Medium

You are given an n x n 2D matrix representing an image, rotate the image by 90 degrees (clockwise).
You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.

Example 1:

Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [[7,4,1],[8,5,2],[9,6,3]]

Example 2:

Input: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
Output: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

Example 3:
Input: matrix = [[1]]
Output: [[1]]

Example 4:
Input: matrix = [[1,2],[3,4]]
Output: [[3,1],[4,2]]

Constraints:
• matrix.length == n
• matrix[i].length == n
• 1 <= n <= 20
• -1000 <= matrix[i][j] <= 1000

我的程式碼

void rotate(int** matrix, int matrixSize, int* matrixColSize){
    int i,j,k=0;
    int result[(matrixSize*matrixSize)];
    for(i=0;i<matrixSize;i++){
       for(j=matrixSize-1;j>=0;j--)
       {   result[k]=matrix[j][i];  
          printf("%d",matrix[j][i]);k++;}
printf("\n");}k=0;
for(i=0;i<matrixSize;i++){
       for(j=0;j<matrixSize;j++)
       {   matrix[i][j]=result[k];
          printf("%d",matrix[i][j]);k++;}
printf("\n");}
    
    return 0;
}

提示
這題其實蠻簡單的,但不能再宣告一個2維陣列,此題是四個一組的換位置,不過解題時我在坐車,用手機寫的,直接偷吃步,存到一維再轉存二維,想說過不了再說,沒想到過了XD,四個一組的換法可以直接參考此題的solution

DAY22心得
我想放假


上一篇
找LeetCode上簡單的題目來撐過30天啦(DAY21)
下一篇
找LeetCode上簡單的題目來撐過30天啦(DAY23)
系列文
想到甚麼打甚麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
細枝
iT邦新手 4 級 ‧ 2021-10-07 01:31:18

當我看到printf就發現不大對勁w,你的Java咧?

soft_soft iT邦新手 5 級 ‧ 2021-10-07 21:19:24 檢舉

沒有寫QQ 我c跟java挑著寫XDDD

我要留言

立即登入留言