前置知识: 讲解051-二分答案法,本节课题目5需要这个重要技巧 讲解066-从递归入手一维动态规划,本节课都是一维动态规划的问题 【必备】课程的动态规划大专题从讲解066开始,建议从头开始学习会比较系统
子数组最大累加和问题是一个非常经典的问题,也比较简单
但是 扩展出的问题很多,在笔试、面试中特别常见
扩展出的问题很多非常有趣,解法也比较巧妙,用讲解070、讲解071两期来给讲述
题目1 子数组最大累加和 给你一个整数数组 nums 请你找出一个具有最大累加和的非空子数组 返回其最大累加和 测试链接 : https://leetcode.cn/problems/maximum-subarray/
附加问题 子数组中找到拥有最大累加和的子数组,并返回如下三个信息: 1) 最大累加和子数组的开头left 2) 最大累加和子数组的结尾right 3) 最大累加和子数组的累加和sum 如果不止一个子数组拥有最大累加和,那么找到哪一个都可以
题目2 不能选相邻元素的最大累加和问题 给定一个数组,可以随意选择数字,但是不能选择相邻的数字 返回能得到的最大累加和 测试链接 : https://leetcode.cn/problems/house-robber/
题目3 环形数组的子数组最大累加和 给定一个数组nums,长度为n nums是一个环形数组,下标0和下标n-1是连在一起的 返回环形数组中子数组最大累加和 测试链接 : https://leetcode.cn/problems/maximum-sum-circular-subarray/
题目4 环形数组中不能选相邻元素的最大累加和 给定一个数组nums,长度为n nums是一个环形数组,下标0和下标n-1是连在一起的 可以随意选择数字,但是不能选择相邻的数字 返回能得到的最大累加和 测试链接 : https://leetcode.cn/problems/house-robber-ii/
题目5 打家劫舍 IV 沿街有一排连续的房屋。每间房屋内都藏有一定的现金 现在有一位小偷计划从这些房屋中窃取现金 由于相邻的房屋装有相互连通的防盗系统,所以小偷不会窃取相邻的房屋 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额 给你一个整数数组 nums 表示每间房屋存放的现金金额 第i间房屋中放有nums[i]的钱数 另给你一个整数k,表示小偷需要窃取至少 k 间房屋 返回小偷需要的最小窃取能力值 测试链接 : https://leetcode.cn/problems/house-robber-iv/
题目6 子矩阵最大累加和问题 给定一个二维数组grid,找到其中子矩阵的最大累加和 返回拥有最大累加和的子矩阵左上角和右下角坐标 如果有多个子矩阵都有最大累加和,返回哪一个都可以 测试链接 : https://leetcode.cn/problems/max-submatrix-lcci/
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com