Matrix est une sorte de tableau 2D dans lequel il y a un tableau de tableaux fixes qui définit les lignes et pour chaque index de ce tableau il y a des tableaux de longueur fixe présents et la longueur de ces tableaux définit le nombre de colonnes présents dans la matrice. Nous pouvons stocker tout type de données dans ces cellules fournies par la matrice.
Nous recevrons une matrice et chaque ligne contient des entiers et nous devons vérifier si chaque ligne est la rotation l'une de l'autre ou non. La rotation les uns des autres signifie que par un certain nombre ou des rotations à gauche ou à droite, nous pouvons produire la même combinaison de chaque rangée.
让我们假设给定的矩阵是:
mat = [ [1, 2, 3], [2, 3, 1], [3, 1, 2]] Output: Yes
Explication : en supposant que la première ligne est constante et en faisant pivoter la ligne restante, nous pouvons obtenir le résultat suivant :
En tournant la deuxième rangée une fois vers la droite et en tournant la deuxième rangée deux fois vers la droite, nous pouvons rendre les deux identiques à la première rangée.
mat = [ [1, 2, 3], [ 2, 1, 3], [ 1, 2, 3]] Output: No
解释:在上面的矩阵中,第一行和第三行是相同的,但我们无法通过任意次数的旋转将第二行转换为第一行。
Nous avons vu un exemple approprié pour comprendre le problème, voyons maintenant les étapes pour implémenter le code −
输入:matrice = [ [ 1, 2, 3 ], [ 2, 3, 1 ], [ 3, 1, 2 ] ]
Sortie : Oui
// function to rotate the given array function rotate(arr){ var l = 0; var r = arr.length-1; while(l < r){ arr[l] += arr[r]; arr[r] = arr[l]-arr[r]; arr[l] = arr[l]-arr[r]; l++; } return arr; } // function to check if the given matrix can have the same rows // after the certain number of rotations function check(mat){ // getting number of rows var rows = mat.length // getting number of columns var cols = mat[0].length // traversing over the each row of given matrix for(var i = 1; i < rows; i++){ var k = 0; while(k < cols) { var j = 0; for(j = 0; j<cols; j++){ if(mat[0][j] != mat[i][j]){ break; } } if(j == cols){ break; } else{ mat[i] = rotate(mat[i]); } k++; } if(k == cols){ return false; } } return true; } // defining the matrix var mat = [ [1, 2, 3], [2, 3, 1], [3, 1, 2]]; console.log("The given matrix is: "); console.log(mat); if(check(mat) == true){ console.log("Yes, all the rows of the matrix are circular rotation of each other"); } else{ console.log("NO, all the rows of the matrix are not in the circular rotation of each other"); }
输出
The given matrix is: [ [ 1, 2, 3 ], [ 2, 3, 1 ], [ 3, 1, 2 ] ] Yes, all the rows of the matrix are circular rotation of each other
上述代码的空间复杂度为O(1),因为我们没有使用任何额外的空间。
Conclusion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!