LeetCode in Kotlin

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]]

Constraints:

Solution

class Solution {
    fun rotate(matrix: Array<IntArray>) {
        val n: Int = matrix.size
        for (i in 0 until n / 2) {
            for (j in i until n - i - 1) {
                val pos = arrayOf(
                    intArrayOf(i, j),
                    intArrayOf(j, n - 1 - i),
                    intArrayOf(n - 1 - i, n - 1 - j),
                    intArrayOf(n - 1 - j, i),
                )
                var t = matrix[pos[0][0]][pos[0][1]]
                for (k in 1 until pos.size) {
                    val temp = matrix[pos[k][0]][pos[k][1]]
                    matrix[pos[k][0]][pos[k][1]] = t
                    t = temp
                }
                matrix[pos[0][0]][pos[0][1]] = t
            }
        }
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy