文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
最大子数组和
解题思路
动态规划。
- 对数组进行遍历,当前最大子序列和为 sum,结果为 ans。
- sum > 0,则说明 sum 对结果有增益,保留 sum 并加上当前遍历数字。
- sum < 0,则说明 sum 对结果无增益,需要舍弃,sum 更新为当前遍历数字。
- 每次遍历比较 sum 和 ans 的大小,将最大值置为 ans。
代码实现
const maxSubArray = (nums: number[]): number => {
let ans: number = nums[0];
let sum: number = 0;
for (let num of nums) {
if (sum > 0) {
sum += num;
} else {
sum = num;
}
ans = Math.max(ans, sum);
}
return ans;
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论