Skip to main content
Code Review

Return to Question

Commonmark migration
Source Link

Given a matrix A, return the transpose of A.

The transpose of a matrix is the matrix flipped over it's main diagonal, switching the row and column indices of the matrix.

Example 1:

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

Example 2:

Input: [[1,2,3],[4,5,6]] Output: [[1,4],[2,5],[3,6]]

Note:

1 <= A.length <= 1000 1 <= A[0].length <= 1000

Given a matrix A, return the transpose of A.

The transpose of a matrix is the matrix flipped over it's main diagonal, switching the row and column indices of the matrix.

Example 1:

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

Example 2:

Input: [[1,2,3],[4,5,6]] Output: [[1,4],[2,5],[3,6]]

Note:

1 <= A.length <= 1000 1 <= A[0].length <= 1000

Given a matrix A, return the transpose of A.

The transpose of a matrix is the matrix flipped over it's main diagonal, switching the row and column indices of the matrix.

Example 1:

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

Example 2:

Input: [[1,2,3],[4,5,6]] Output: [[1,4],[2,5],[3,6]]

Note:

1 <= A.length <= 1000 1 <= A[0].length <= 1000

tag
Link
dfhwze
  • 14.1k
  • 3
  • 40
  • 101
Source Link
Gilad
  • 5.4k
  • 5
  • 38
  • 64

LeetCode: Transpose Matrix C#

Please review performance

https://leetcode.com/problems/transpose-matrix/

Given a matrix A, return the transpose of A.

The transpose of a matrix is the matrix flipped over it's main diagonal, switching the row and column indices of the matrix.

Example 1:

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

Example 2:

Input: [[1,2,3],[4,5,6]] Output: [[1,4],[2,5],[3,6]]

Note:

1 <= A.length <= 1000 1 <= A[0].length <= 1000

using System;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace ArrayQuestions
{
 [TestClass]
 public class TransposeMatrix
 {
 /// <summary>
 /// 1 2 3 1 4 7
 /// 4 5 6 2 5 8
 /// 7 8 9 3 6 9
 /// </summary>
 [TestMethod]
 public void Transpose3X3()
 {
 int[][] matrix = { new[] { 1, 2, 3 }, new[] { 4, 5, 6 }, new[] { 7, 8, 9 } };
 int[][] expected = { new[] { 1, 4, 7 }, new[] { 2, 5, 8 }, new[] { 3, 6, 9 } };
 int[][] output = Transpose(matrix);
 for (int i = 0; i < output.GetLength(0); i++)
 {
 CollectionAssert.AreEqual(expected[i], output[i]);
 }
 }
 [TestMethod]
 public void Transpose2X3()
 {
 int[][] matrix = { new[] { 1, 2, 3 }, new[] { 4, 5, 6 } };
 int[][] expected = { new[] { 1, 4 }, new[] { 2, 5 }, new[] { 3, 6} };
 int[][] output = Transpose(matrix);
 for (int i = 0; i < output.GetLength(0); i++)
 {
 CollectionAssert.AreEqual(expected[i], output[i]);
 }
 }
 public int[][] Transpose(int[][] A)
 {
 int h = A.GetLength(0);
 int w = A[0].GetLength(0);
 //we need to allocate the matrix as transposed already
 //for example 2x3 should allocate 3x2
 int[][] res = new int[w][];
 for (int i = 0; i < w; i++)
 {
 res[i] = new int[h];
 }
 for (int r = 0; r < h; r++)
 {
 for (int c = 0; c < w; c++)
 {
 res[c][r] = A[r][c];
 }
 }
 return res;
 }
 }
}
lang-cs

AltStyle によって変換されたページ (->オリジナル) /