![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多维数组和矩阵
海伦•
求知若渴,大智若愚
展开
-
子阵最大累加和(dp)
分析:如果直接用暴力法,时间复杂度可以达到0(*) 但行用到dp的方法可以将时间复杂度降到O(*n)public class Main { public static int a[][] = { {1,1,1,1,1,1}, {1,0,0,0,1,1}, {1,0,0,0,1,1}, {1,0,0,0,1,1}, {...原创 2019-04-20 17:06:10 · 119 阅读 · 0 评论 -
矩阵与矩阵的乘法运算
分析:a矩阵的行为ab矩阵的行数 b矩阵的列数为ab矩阵得列数 将乘的次数为a矩阵的列数,= b矩阵的行数public class Main { public static int a[][] = { {1,2}, {1,-1} }; public static int b[][] = {...原创 2019-04-20 17:38:09 · 4067 阅读 · 0 评论 -
Z形打印(模拟)
分析:将模型简单化,分为向斜上方走和向斜下方走,当遇到边界时就处理当步该走方向 变化整体方向 flag = !flagpublic class Main { public static int a[][] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; public static void main(String[] a...原创 2019-04-19 16:35:52 · 188 阅读 · 0 评论 -
顺时针打印二维数组
分析:看变化:变化的是上下左右边界 简化:首先打出第一行,注意没打出一点就检验一遍,这样有减少错误复杂度 具体实现:套上外层循环public class Main { public static int a[][] = { {1,2,3,4}, {5,6,7,8}, {9,20,11,12}, {13,14,15,16} }; public sta...原创 2019-04-19 16:37:11 · 248 阅读 · 0 评论 -
边界为1的最大子方阵(模拟+动态规划)
分析:这里不使用直接暴力枚举的方法,而是使用最大最先算的最优算法。这里的思考方式值得学习。方法一:使用模拟的方法,模拟寻找过程(从大到小顺序查找,找到就停止)public class Main { public static int a[][] = { {1,1,1,1,1,1}, {1,0,0,0,1,1}, {1,0,0,0,1,1}, {1,0,0,0,1,...原创 2019-04-19 17:41:12 · 576 阅读 · 0 评论