题目描述 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 算法描述 使用动态规划,对于输入的数组nums[],定义数组dp[nums.length],并且dp[i]表示以num[i]为结尾的子数组的和的最大值,则状态转移方程为 * 如果dp[i-1]<=0,那 ...
分类:
编程语言 时间:
2020-09-11 15:57:45
阅读次数:
40
剑指Offer中的动态规划除了一题hard(正则表达式匹配)都比较简单。 连续子数组的最大和 这道题可以作为线性dp的模板。 用dp[i]表示以元素nums[i]为结尾的连续子数组最大和。 当以nums[i-1]为结尾的数组和(dp[i-1])大于0,对于以nums[i]为结尾的子数组(dp[i]) ...
分类:
其他好文 时间:
2020-07-31 22:58:15
阅读次数:
102
[编程题] nk:连续子数组的最大和 输入输出 无 思路 方法:动态规划 Java代码 public class Solution { //方法1:动态规划 public int FindGreatestSumOfSubArray1(int[] array) { //[6,-3,-2,7,-15,1 ...
分类:
编程语言 时间:
2020-07-30 01:38:35
阅读次数:
79
题目描述 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 示例 输入: nums = [7,2,5,10,8] ...
分类:
编程语言 时间:
2020-07-26 01:25:06
阅读次数:
71
给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 示例: 输入: nums = [7,2,5,10,8] m = ...
分类:
编程语言 时间:
2020-07-25 09:27:00
阅读次数:
73
dp连续子数组的最大问题求解: ##思路: ####1.dp[i] 表示以第i个元素为末尾元素的子序列最大和 ####2.只有一个元素时,该元素即最大 ####3.当dp[i-1]为负数时,对第i个元素产生负影响;为正数时,比较加上第i个元素值是否变大,dp[i] 为nums[i]与dp[i-1]+ ...
分类:
编程语言 时间:
2020-07-24 21:45:11
阅读次数:
64
package shuzu; /* 152. 乘积最大子数组 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: ...
分类:
编程语言 时间:
2020-07-24 15:31:39
阅读次数:
60
https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/ 1、题目描述: 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 2、示 ...
分类:
编程语言 时间:
2020-07-19 18:09:51
阅读次数:
388
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2 ...
分类:
编程语言 时间:
2020-07-12 14:34:54
阅读次数:
57
#长度最小的连续子数组 ##问题描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 示例: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 ...
分类:
编程语言 时间:
2020-07-08 22:39:37
阅读次数:
49