0-1背包问题、最大连续子数组问题、最长公共子序列、最长公共子串、最小编辑距离、钢条切割、矩阵链乘 动态规划问题的一般步骤: 给出问题的表示,明确子问题 分析最优结构,构造递推公式 确定计算顺序,依次求解问题 记录决策过程,输出最优方案 0-1背包 动规方程: 用$p[i,c]$表示前i个物品在背包 ...
分类:
编程语言 时间:
2020-12-31 12:05:20
阅读次数:
0
(一)一维最大连续子数组和 源码: #include<iostream> #include<cstdio> using namespace std; const int N=100000; int main() { int i,j,k; int a[N]; int sum[N]; int n; pr ...
分类:
编程语言 时间:
2020-07-05 10:48:12
阅读次数:
68
一、题目说明 题目581. Shortest Unsorted Continuous Subarray,求最大连续子数组(如果该子数组有序,则整个数组有序)的长度。难度是Easy! 二、我的解答 不动脑子,将数组排序,然后从左到右比较,再从右到左比较。即可获得最短子数组的长度。 性能如下: 三、优化 ...
分类:
其他好文 时间:
2020-04-30 09:32:57
阅读次数:
44
题目描述:一次股票交易包含买入和卖出,只进行一次交易,求最大收益。 只要记录前面的最小价格,将这个最小价格作为买入价格,然后将当前的价格作为售出价格,查看当前收益是不是最大收益。 主要解题思路是转换成求最大连续子数组,整理了三个解法,单调栈我是没有想到的。。 常规解: 1. class Soluti ...
分类:
其他好文 时间:
2020-04-16 10:34:17
阅读次数:
97
链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/submissions/ 代码: class Solution { public: int maxSubArray(vector<int>& nums) { ...
分类:
编程语言 时间:
2020-03-04 14:19:07
阅读次数:
60
之前在其他博客看到了,但是算法的关键部分完全看不懂为什么要这么做,直到最近上算法课,才终于知道到底怎么来的。 问题描述: 给出一个数组,求其最大连续子数组和 例:数组{1,2,3,4,-5,10,-1,-1}的最大连续子数组和是子数组{1,2,3,4,-5,10}的和15 算法过程: 这个算法能从零 ...
分类:
编程语言 时间:
2019-10-28 00:26:03
阅读次数:
137
今天...早上10点赶去西电去参加了宣讲会,完了做了一个笔试....估计没什么情况。编程题不会做。下午又做了平安产险的笔试(比较随便,编程是一道Leetcode简单题吧 求最大连续子数组的和O(n)),晚上通知去第二天面试。 晚上刚做完多益的笔试,比较正经。 1. 20道选择,涉及算法数据库和操作系 ...
分类:
其他好文 时间:
2019-09-06 22:51:33
阅读次数:
145
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为 ...
分类:
其他好文 时间:
2019-08-15 21:19:40
阅读次数:
108
1.题目要求 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[ ...
分类:
编程语言 时间:
2019-04-20 00:15:02
阅读次数:
186
【题目】最大连续子数组和(最大子段和) 背景 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为:Max{0,a[i]+a[i+1]+… ...
分类:
编程语言 时间:
2019-04-18 20:04:13
阅读次数:
209