多维数组与矩阵

1.顺时针打印二维数组

2.零所在行列清零

【问题描述】如果矩阵中某个元素为0 ,则将其所在行和列清零
【算法】扫描矩阵,建立行的一维数组以及列的一维数组并做标记

3.Z字型打印矩阵 

 【算法】分条件判断从左下到右上还是从右上到左下

4.边界为1的最大子方阵

【问题描述】给定一个NxN的矩阵matrix,在这个矩阵中,只有0和1两种值,返回边框全是1的最大正方形的边长长度。

【算法】枚举

【优化】预处理,复制一份空的与原矩阵阶数相同的矩阵,记录其右和下(包含他自己的1的个数),只检测4个数就行,三维数组 

5.子数组最大累加和
【问题描述】给定一个数组arr ,返回子数组的最大累加和,例: arr=[1,-2,3,5,-2,6,-1]所有的子数组中[3,5,-2,6]可以累加出最大的和12 ,所以返回12。

【算法1】暴力求解,逐个遍历

【代码】

【算法2】负数丢弃正数保留

6.子矩阵最大累加和
【问题描述】给定一个矩阵matrix ,其中的值有正、有负、有0 ,返回子矩阵的最大累加和
例如, matrix为:
其中最大累加和的子矩阵为:2   2,所以返回4。

【算法】每行按列求和,即多行融为1行,3+2+1即n的平方级,每趟是时间复杂度n³ ,算每列相加的和。注意异常值,即数组为空(长度为0)时直接返回

【代码】

7.矩阵乘法

【算法】行x列相加

【代码】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值