• 1572.矩阵对角线元素的和


    算法题

    第一遍:1.看5分钟,没思路看题解

    2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。

    3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法)

    4.整理到自己的自媒体平台。

    5.再刷重复的类似的题目,根据时间和任务安排刷哪几个板块

    6.用c++语言 都刷过一遍了 就刷中等

    一.题目

    给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。

    请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。

    示例  1:

    输入:mat = [[1,2,3],
                [4,5,6],
                [7,8,9]]
    输出:25
    解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25
    请注意,元素 mat[1][1] = 5 只会被计算一次。
    

    示例  2:

    输入:mat = [[1,1,1,1],
                [1,1,1,1],
                [1,1,1,1],
                [1,1,1,1]]
    输出:8
    

    示例 3:

    输入:mat = [[5]]
    输出:5
    

    提示:

    • n == mat.length == mat[i].length
    • 1 <= n <= 100
    • 1 <= mat[i][j] <= 100

    二、反思

    1.自己的解法

    1. class Solution {
    2. public:
    3. int diagonalSum(vectorint>>& mat) {
    4. int n=mat.size();
    5. int res=0;
    6. for(int i=0;i
    7. res +=mat[i][i]+mat[i][n-i-1];
    8. }
    9. if (n%2==1){
    10. return res-mat[(n-1)/2][(n-1)/2];
    11. }else {
    12. return res;
    13. }
    14. }
    15. };

    2.题目的解法 

    1. class Solution {
    2. public:
    3. int diagonalSum(vectorint>>& mat) {
    4. int n = mat.size(), sum = 0, mid = n / 2;
    5. for (int i = 0; i < n; ++i) {
    6. sum += mat[i][i] + mat[i][n - 1 - i];
    7. }
    8. return sum - mat[mid][mid] * (n & 1);
    9. }
    10. };
    11. 作者:力扣官方题解
    12. 链接:https://leetcode.cn/problems/matrix-diagonal-sum/solutions/441166/ju-zhen-dui-jiao-xian-yuan-su-de-he-by-leetcode-so/
    13. 来源:力扣(LeetCode)
    14. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

     3.思路的异同

    思路整体一致,但是n&1判断奇偶性是自己没想到的。网上找到了原理:

    因为n为奇数时,对应的二进制数最低位一定为1,n&1的结果就是1
    n为偶数时,相应的最低位为0,n&1的结果就是0.

    三.进步的地方

    学到了利用逻辑运算符和2进制来判断奇偶性 

  • 相关阅读:
    Some Modest Advice for Graduate Students - by Stephen C. Stearns, Ph.D.
    WPF中样式静态、动态资源、资源字典
    特种设备安全监测终端,降低安全隐患风险!
    poj 1742 coins
    宝兰德部署包特别慢&部署超时失败问题解决
    ceph分布式存储部署
    PMP考试成绩多久出来?这些你务必知道!
    NOIP 2007 普及组初赛试题 第21题
    高可用eureka服务注册与发现代码例子
    GII全球创新指数2013-2020
  • 原文地址:https://blog.csdn.net/m0_73800437/article/details/136610698