一个数组子数组求最大值
一维数组问题
一、求连续的元素的子数组最大值。
首先,问题的要求是:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
我写的代码如下:
然后我说一下我的思路,当时上课的时候虽然这个很简单,但是我还是没有想出来。
1.因为是要求所有子数组的情况,所以有都为负数的情况以及其它情况,都为负数的情况就需要单独对比,找出负数里面的最大值。连续的情况就需要一个个相加来对比。
2.因为是第一阶段,所以代码也是比较简单,思路就是创建一个动态数组,然后创建一个用来储存临时最大值的变量lsmax以及最终结果的最大值的变量max,首先判断是否只有一个变量,是的话就是直接输出最大值。然后当超过一个变量的时候就可以判断前两个数的和是否小于0,小于0的话就可以直接舍弃不要了,从当前变量从新来选。最后如果临时最大值大于最终结果,就把临时最大值赋值给最终结果,输出即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?