📅  最后修改于: 2023-12-03 15:40:35.708000             🧑  作者: Mango
本程序用于检查一个 n x n 的矩阵是否为上三角形矩阵,即除了对角线及其左下方的元素外,其余元素均为零。程序使用了两种实现方式:基本方法和优化方法。
基本方法是通过遍历矩阵来检查每个元素是否满足条件。具体实现如下:
function isUpperTriangular(matrix) {
const n = matrix.length;
for (let i = 0; i < n; i++) {
for (let j = 0; j < i; j++) {
if (matrix[i][j] !== 0) {
return false;
}
}
}
return true;
}
该方法时间复杂度为 O(n^2),空间复杂度为 O(1)。
优化方法利用了矩阵的特性,从左下到右上遍历只需要检查相应位置及其右上方的元素是否满足条件即可。具体实现如下:
function isUpperTriangular(matrix) {
const n = matrix.length;
for (let i = n - 1; i >= 0; i--) {
for (let j = 0; j <= i; j++) {
if (matrix[i][j] !== 0) {
return false;
}
}
}
return true;
}
该方法时间复杂度为 O(n^2),空间复杂度为 O(1)。
优化方法相较于基本方法,减少了比较的次数,并且不需要额外的空间开销。对于大型矩阵,优化方法的效率更高。