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.
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 .
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.
// 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"); }
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 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.
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!