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

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

筛选

蓝桥杯历届试题-最大子阵 (C++代码)

摘要:解题思路:即便是使用了dp,复杂度依然是O(nm²),在一些优化技巧的帮助下,勉强可以承受最大为500的数据规模的打击,时间在700ms上下注意事项:优化:不要用算法模板里的max,直接用三目运算符或……
优质题解

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

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

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

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

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

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