Rumah  >  Artikel  >  hujung hadapan web  >  Program JavaScript untuk memeriksa sama ada matriks adalah segi tiga atas

Program JavaScript untuk memeriksa sama ada matriks adalah segi tiga atas

WBOY
WBOYke hadapan
2023-09-08 08:41:06628semak imbas

JavaScript 程序检查矩阵是否为上三角

Matriks segi tiga atas ialah matriks segi empat sama dengan bilangan baris dan lajur yang sama dan semua elemen di bawah pepenjuru utama dari sel pertama (terletak di sudut kiri atas) hingga sel terakhir (terletak di bahagian atas). sudut kiri ) sudut kanan bawah) ialah sifar. Segitiga atas bermakna unsur-unsur yang terdapat dalam segitiga bawah akan menjadi sifar. Kami akan melaksanakan kod yang sesuai dan kerumitan masa dan ruang akan diterangkan dan dibincangkan.

Contoh

Input1:
mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 0, 0, 1]
]
Output1: Yes,

Penjelasan: Kita dapat melihat bahawa pepenjuru utama mengandungi unsur 1, 5, 8 dan 1, dan semua sel di bawah pepenjuru utama mempunyai nilai sifar.

Input2:
mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 1, 0, 1]
]
Output1: No

Penjelasan: Kita dapat melihat bahawa pepenjuru utama mengandungi unsur 1, 5, 8 dan 1, dan semua sel di bawah pepenjuru utama mempunyai nilai bukan sifar kerana lajur kedua baris terakhir mengandungi nilai bukan sifar .

Kaedah

Kita telah melihat contoh di atas, sekarang mari kita lihat langkah-langkah untuk melaksanakan kod:

Pertama, kami akan mencipta fungsi di mana kami melepasi matriks yang diberikan. Kami hanya akan merentasi bahagian bawah pepenjuru utama matriks, iaitu setiap sel (i,j) di mana j kurang daripada i. Jika kami menemui mana-mana sel dengan nilai bukan sifar, kami akan mengembalikan palsu, jika tidak, kami akhirnya akan mengembalikan benar.

Contoh

// function to traverse over the matrix
function check(mat){

   // getting total number of rows of matrix
   var rows = mat.length
   
   // traversing over the section present above the main diagonal
   for(var i = 0; i < rows; i++){
      for(var j = 0; j < i; j++){
         if(mat[i][j] != 0){
            return false;
         }
      }
   }
   return true;
}

// defining the matrix
var mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 0, 0, 1]
]
   
// given matrix
console.log("The given matrix is: ");
console.log(mat)
if(check(mat)){
   console.log("The given matrix is an upper triangular matrix");
}
else{
   console.log("The given matrix is not an upper triangular matrix");
}

// updating matrix
mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 1, 0, 1]
      ]
   
// given matrix
console.log("The given matrix is: ");
console.log(mat)
if(check(mat)){
   console.log("The given matrix is an upper triangular matrix");
}
else{
   console.log("The given matrix is not an upper triangular matrix");
}

Output

The given matrix is: 
[ [ 1, 2, 3, 4 ], [ 0, 5, 6, 7 ], [ 0, 0, 8, 9 ], [ 0, 0, 0, 1 ] ]
The given matrix is an upper triangular matrix
The given matrix is: 
[ [ 1, 2, 3, 4 ], [ 0, 5, 6, 7 ], [ 0, 0, 8, 9 ], [ 0, 1, 0, 1 ] ]
The given matrix is not an upper triangular matrix

Kerumitan masa dan ruang

Kerumitan masa kod di atas ialah O(N*N), dengan N ialah bilangan baris matriks yang diberikan. Ini kerana kita hanya berulang melalui matriks sekali.

Kerumitan ruang kod di atas ialah O(1) kerana kami tidak menggunakan sebarang ruang tambahan.

Kesimpulan

Dalam tutorial ini, kami melaksanakan program JavaScript untuk menyemak sama ada matriks yang diberikan ialah matriks segi tiga atas. Segitiga atas bermakna unsur-unsur yang terdapat dalam segitiga bawah akan menjadi sifar. Kami mengulangi sel dalam matriks dengan bilangan lajur kurang daripada bilangan baris, dengan kerumitan masa O(N*N) dan kerumitan ruang O(1).

Atas ialah kandungan terperinci Program JavaScript untuk memeriksa sama ada matriks adalah segi tiga atas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam