我是靠谱客的博主 背后翅膀,最近开发中收集的这篇文章主要介绍七月集训---数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

因为学校12月份要举办蓝桥杯的选拔赛,所以参加英雄哥的《七月集训》,想通过训练能让自己掌握算法的一些知识的同时,也为以后的工作做准备,学到知识最重要,得不得奖反倒是其次了。话不多说,直接进入正题。

第一天的集训的主题主是学习过程中接触最早,也是比较容易理解的数组。

         2319.判断一个矩阵是否为X矩阵

  题目描述:

如果一个正方形矩阵满足下述 全部 条件,则称之为一个 X 矩阵 :

矩阵对角线上的所有元素都 不是 0
矩阵中所有其他元素都是 0
给你一个大小为 n x n 的二维整数数组 grid ,表示一个正方形矩阵。如果 grid 是一个 X 矩阵 ,返回 true ;否则,返回 false 。

 题目思路:首先我们得清楚矩阵不单单是有主对角线,还有一条副对角线,自己在做题的时候忘了加上副对角线的判断,从而导致解题出错。如果我们令j分别代表矩阵的横纵坐标,那么则有:

主对角线:i = j;

而副对角线 i + j=矩阵的最大阶数

 代码方面:直接双重循环,满足主对角线或者副对角线的点值不能等于0,若不满足,则值不可以为非零。

解题代码:

bool checkXMatrix(int** grid, int gridSize, int* gridColSize){
    int i, j;
    int res = 0;  //默认标识符为0,若有不符合条件的则变为1
    for(i=0; i<gridSize; i++)  //检测主对角线与副对角线
    {
        for(j=0; j<gridSize; j++)
        {
            if(i == j || i+j == gridSize-1)  //主对角线和副对角线的判断条件
            {
                if(grid[i][j] == 0)
                res = 1;
                
            }
            else
            {
                if(grid[i][j] != 0)
                res = 1;
                
            }
        }
    }
  //标识符为0代表是X矩阵,返回True,否则返回false
    if(res == 0)
        return true;
    else
        return false;
        
}

 

最后

以上就是背后翅膀为你收集整理的七月集训---数组的全部内容,希望文章能够帮你解决七月集训---数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部