IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> ??LeetCode 最大连续子序列,Maximum Subarray?? -> 正文阅读

[数据结构与算法]??LeetCode 最大连续子序列,Maximum Subarray??


🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏:LeetCode面试必备100题?(优质好文持续更新中……)🚀


目录

一、题目描述

二、题目样例

三、算法思想

四、代码实现

五、复杂度分析

六、题目链接


一、题目描述

给定一个整数数组 nums ,找到一个具有最大和的连续子序列(子序列中最少包含一个元素),返回其最大和。

其中:

1 <= nums.length <= 3 * 104

-10^5 <= nums[i] <= 10^5

二、题目样例

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]

输出:6

说明:在数组 nums 中,连续子序列 [4, -1, 2, 1] 的和是所有连续子序列中最大的,故连续子序列的和最大为 6 。

三、算法思想

这是一道非常经典的题目,是一道非常基础的动态规划题目,假设 dp[i] 为以第 i 个元素为结尾的连续序列的最大和,那么,有如下动态转移方程:

dp[i] = max(dp[i-1] + nums[i], nums[i])

上述方程代表以第 i 个元素为结尾的连续序列的最大和等于:以第 i-1 个元素为结尾的连续序列的最大和加上第 i 个元素值和第 i 个元素值的最大值。

因为本题中仅仅是求一个最大值,故可以把转移方程改为:sum = max(sum + nums[i], nums[i])。

四、代码实现

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int sum = 0; // 记录连续子序列的和
        int ans = nums[0]; // 假设最大值为 nums[0]
        for(int i = 0; i < (int)nums.size(); ++i) {
            sum = max(sum + nums[i], nums[i]); // 计算 sum
            ans = max(sum, ans); // 求最大值
        }
        return ans;
    }
};

五、复杂度分析

时间复杂度:O(n),因为程序整个执行过程只遍历了一次 nums 数组,故时间复杂度为 O(n);

空间复杂度:O(1),在程序中,仅用到了 sum 和 ans 两个额外的变量,可以忽略,故空间复杂度为 O(1);

六、题目链接

力扣


🎈 欢迎小伙伴们点赞👍、收藏?、留言💬


? ? ? ? 欢迎关注下方👇👇👇公众号👇👇👇,获取更多优质内容🤞(比心)!

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 16:00:39  更:2021-09-20 16:01:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 7:51:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码