淄博企业网站建设,百度网盘app免费下载安装老版本,最近新闻热点事件,系统开发流程图刷算法题#xff1a;
第一遍#xff1a;1.看5分钟#xff0c;没思路看题解
2.通过题解改进自己的解法#xff0c;并且要写每行的注释以及自己的思路。
3.思考自己做到了题解的哪一步#xff0c;下次怎么才能做对(总结方法)
4.整理到自己的自媒体平台。
5.再刷重复的类…刷算法题
第一遍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].length1 n 1001 mat[i][j] 100
二、反思
1.自己的解法
class Solution {
public:int diagonalSum(vectorvectorint mat) {int nmat.size();int res0;for(int i0;in;i){res mat[i][i]mat[i][n-i-1];}if (n%21){return res-mat[(n-1)/2][(n-1)/2];}else {return res;}}
};
2.题目的解法
class Solution {
public:int diagonalSum(vectorvectorint mat) {int n mat.size(), sum 0, mid n / 2;for (int i 0; i n; i) {sum mat[i][i] mat[i][n - 1 - i];}return sum - mat[mid][mid] * (n 1);}
};作者力扣官方题解
链接https://leetcode.cn/problems/matrix-diagonal-sum/solutions/441166/ju-zhen-dui-jiao-xian-yuan-su-de-he-by-leetcode-so/
来源力扣LeetCode
著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。 3.思路的异同
思路整体一致但是n1判断奇偶性是自己没想到的。网上找到了原理
因为n为奇数时对应的二进制数最低位一定为1n1的结果就是1 n为偶数时相应的最低位为0n1的结果就是0.
三.进步的地方
学到了利用逻辑运算符和2进制来判断奇偶性