牛客网——判断上三角矩阵

简介: 牛客网——判断上三角矩阵

前言


今天和大家一起学习一下如何判断上三角矩阵。

一、上三角矩阵


题目来源:

KiKi判断上三角矩阵_牛客题霸_牛客网

描述


KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。

输入描述:


第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)

从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。

输出描述:


一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。

二、解题思路


1.错误代码(一开始看错,直接整了个矩阵给它)


代码如下(示例):

#include<stdio.h>
int main(){
    int n;
    int arr[10][10]={0};        //初始化
    scanf("%d",&n);
    int j=0,i=0,a=0,w;
    while(j<=n){                //设置循环条件
    for(i=j;i<n;i++){           //输入数组
            arr[j][i]=++a;
    }
        j++;                    //斜向下移动一位
    }
    for(int k=0;k<n;k++){        //输出,有输入的就输出数字,没有输入的数组在前面已经初始化为0
        for(int l=0;l<n;l++){
            printf("% d",arr[k][l]);
        }
        printf("\n");
    }
    return 0;
}

不过我个人认为里面也有一些方法值得大家学习学习。

2、正确代码


int main()
{
  int arr[10][10] = { 0 };
  int i = 0;
  int j = 0;
  int n = 0;
  scanf("%d", &n);
  int sum = 0;
  for (i = 0;i < n;i++)
  {
    for (j = 0;j < n;j++)
    {
      scanf("%d", &arr[i][j]);        //输入
      while (i > j)                //下三角部分
      {
        sum += arr[i][j];        //如果是上三角矩阵,下三角理应都为0
        break;
      }
    }
  }
  if (sum==0)                        //判断
  {
    printf("YES\n");
  }
  else
  {
    printf("NO\n");
  }
  return 0;
}

要注意判断循环的条件(i>j),这些循环的条件的判断对于我们去解循环数组,比如回型、蛇形(这几天会更)是很关键的,希望大家能仔细琢磨一下~

总结


以上就是今天要讲的内容,本文仅仅简单介绍了如何判断上三角矩阵,希望对大家有少少帮助~

相关文章
|
6天前
|
Java
【剑指offer】-顺时针打印矩阵-19/67
【剑指offer】-顺时针打印矩阵-19/67
|
6天前
|
Java
每日一题《剑指offer》数组篇之顺时针打印矩阵
每日一题《剑指offer》数组篇之顺时针打印矩阵
32 0
每日一题《剑指offer》数组篇之顺时针打印矩阵
|
11月前
剑指offer 28. 顺时针打印矩阵
剑指offer 28. 顺时针打印矩阵
39 0
|
12月前
|
算法 C++
【每日算法Day 64】LeetCode 861. 翻转矩阵后的得分
【每日算法Day 64】LeetCode 861. 翻转矩阵后的得分
判断上三角矩阵
判断上三角矩阵 (15 分)
96 0
|
Java C++
环形矩阵(螺旋矩阵)&&蛇形矩阵
环形矩阵(螺旋矩阵)&&蛇形矩阵
99 0
LeetCode 1329. 将矩阵按对角线排序
矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。
87 0
牛客网——矩阵相等判定
牛客网——矩阵相等判定
265 0
|
算法
Leetcode每日一题——随机翻转矩阵
给你一个 m x n 的二元矩阵 matrix ,且所有值被初始化为 0 。请你设计一个算法,随机选取一个满足 matrix[i][j] == 0 的下标 (i, j) ,并将它的值变为 1 。
96 0