题解 1445: 蓝桥杯历届试题-最大子阵

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

最大段子和求法

解题思路:我们需要额外设立一个二维数组来存放每一列数组的和如下所示:比如先假设一个二位数组:123456789那么这个额外的数组就应该是:123579121518代码实现:for(n=1;n<=j;n++){for(m=1;m<=k;m++){if(n==1){b[n][m]=a[n][m];cont

蓝桥杯历届试题-最大子阵

摘要:解题思路:一维和加最大子串和注意事项:参考代码:#include<iostream> #include<unordered_map> #include<vector> #include<dequ……

前缀和思想

摘要:注意事项:    if(ans < 0) ans = 0;  //当ans<0时,如果继续包括前边子矩阵,结果肯定是减小的,所以直接舍弃前边子矩阵参考代码:#include using names……

超短的C++代码(附详细解题思路)

解题思路:①如果按照对每行每列的数字进行逐一分析,很容易就超限,500可不是个小数哦~~~②那就想怎么能通过加减运算去节省时间,不难想到相邻的行之间相加就可以得到一个子阵,所以,对输入的数据加上前面所有行的数据重新储存到数组中,这里方便区分用两个数组表示a表示储存输入数据的数组,b表示变化后的数组。

蓝桥杯历届试题-最大子阵-巧将问题转换成最大子数组(Java实现)

解题思路:每一次都将单行或多行的数据加起来形成一行,就可以转换成最大子数组问题,而最大子数组是比较简单的,直接一层循环进行累加,如果之前累加的和小于0,那么就丢弃,从下一个点重新开始计算,否则就可以加上。注意事项:参考代码://将多行的数据加起来形成一行,
优质题解

蓝桥杯历届试题-最大子阵-题解(C语言代码)---dp最大子段和思想(详细)

解题思路:######//建议边看代码边看思路//1.如果单纯枚举首行,末行,首列,末列来做这道题,就是四重循环,数据最大时,每重循环大概500次,500^4时间复杂度可以达到十的十次方,肯定会超时。所以要考虑能否降循环,或者找到贪心,dp规律。