2024/4/2—力扣—连续数列

代码实现:

思路:最大子数组和

**解法一:**动态规划

cpp 复制代码
#define max(a, b) ((a) > (b) ? (a) : (b))

int maxSubArray(int* nums, int numsSize) {
    if (numsSize == 0) { // 特殊情况
        return 0;
    }
    int dp[numsSize];
    dp[0] = nums[0];
    int result = dp[0];
    for (int i = 1; i < numsSize; i++) {
        dp[i] = max(dp[i - 1] + nums[i], nums[i]); // 状态转移方程
        result = max(result, dp[i]); // result 保存dp[i]的最大值
    }
    return result;
}

**解法二:**贪心

cpp 复制代码
int maxSubArray(int *nums, int numsSize) {
    int result = INT32_MIN;
    int count = 0;
    for (int i = 0; i < numsSize; i++) {
        count += nums[i];
        if (count > result) { // 取区间累计的最大值(相当于不断确定最大子序终止位置)
            result = count;
        }
        if (count <= 0) {
            count = 0; // 相当于重置最大子序起始位置,因为遇到负数一定是拉低总和
        }
    }
    return result;
}
相关推荐
小当家.1052 小时前
[LeetCode]Hot100系列.贪心总结+思想总结
算法·leetcode·职场和发展
im_AMBER3 小时前
Leetcode 46
c语言·c++·笔记·学习·算法·leetcode
努力学算法的蒟蒻3 小时前
day09(11.6)——leetcode面试经典150
算法·leetcode·职场和发展
好学且牛逼的马5 小时前
【HOT100|1 LeetCode 1. 两数之和】
数据结构·算法·leetcode
ʚ希希ɞ ྀ5 小时前
leeCode hot 100 !!!持续更新中
数据结构·算法·leetcode
剪一朵云爱着5 小时前
力扣1539. 第 k 个缺失的正整数
算法·leetcode
吃着火锅x唱着歌10 小时前
LeetCode 2016.增量元素之间的最大差值
数据结构·算法·leetcode
元亓亓亓12 小时前
LeetCode热题100--46. 全排列--中等
算法·leetcode·职场和发展
墨染点香12 小时前
LeetCode 刷题【146. LRU 缓存】
leetcode·缓存·哈希算法
qk学算法12 小时前
力扣滑动窗口题目-76最小覆盖子串&&1234替换子串得到平衡字符串
数据结构·算法·leetcode