看了一下午,终于把算法时间复杂度看完! 然后学着来敲这个O(NlogN)的分治法找最大连续和,这堆代码主要是找4,-3,5,-2,-1,2,6,-2的最大连续和(当然也适用于其他数列)。 主要感想和问题: 首先遇到了scope的问题,没搞清楚const和extern,intern,auto,regi ...
分类:
编程语言 时间:
2016-11-28 08:46:20
阅读次数:
181
五大常用算法:分治、动态规划、贪心、回溯和分支界定 这五种算法引出了很多问题。慢慢的更新链接! 动态规划的五个典型算法:动态规划 1.最大连续子序列之和 2.数塔问题(二叉树从上往下遍历最大和问题) 3.01背包问题 4.最长递增子序列(LIS) 5.最长公共子序列(LCS) //最长公共子序列(L ...
分类:
编程语言 时间:
2016-11-21 07:50:12
阅读次数:
198
题目背景 给一组 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 K 张邮票。计算从 1 到 M 的最大连续可贴出的邮资。 题目描述 例如,假设有 1 分和 3 分的邮票;你最多可以贴 5 张邮票。很容易贴出 1 到 5 分的邮资(用 1 分邮票贴就行了),接下 ...
分类:
其他好文 时间:
2016-11-10 14:35:31
阅读次数:
273
在线性时间内非递归的求数组的最大连续子数组(连续和最大的子数组)。 题目给出思路为数组A[1...j+1]的最大和子数组,有两种情况:a) A[1...j]的最大和子数组; b) 某个A[i...j+1]的最大和子数组,但思考很久没有理解如何用这个思路设计线性时间算法,希望有人能给予指点。 (i点是 ...
分类:
编程语言 时间:
2016-11-02 23:41:34
阅读次数:
296
题解: 二维最大连续字段和问题。 对列枚举i,j,就变成一维最大连续字段和问题了 最大连续字段和问题:dp[i]表示以i结尾的最大连续字段和 dp[i]=max(dp[i-1]+a[i],a[i]); 代码: ...
分类:
其他好文 时间:
2016-10-05 12:58:28
阅读次数:
123
题意 输入一个含有 n(1≤n≤100000) 个非负整数的 a 数组和一个 1~n 的排列 p 数组,求每次删除 a[p[i]] 后,最大连续子段和(不能跨越被删除的)是多少? 分析 因为都是非负整数,答案一定是尽量长的区间和。 s[i] 表示 a 的前缀和,区间(l,r]的和就是s[r]-s[l ...
分类:
其他好文 时间:
2016-10-03 06:51:18
阅读次数:
125
1. maxsum 最大连续子序列和 用d[i]表示以i结束的子序列和的最大值,状态转移方程为 d[i]=max{d[i-1]+a[i],a[i]},其中d[0]=a[0],然后对d[i] sort 取最大值 ...
分类:
其他好文 时间:
2016-09-24 14:56:05
阅读次数:
125
参考:http://conw.net/archives/9/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 留坑。 ...
分类:
其他好文 时间:
2016-09-24 10:41:33
阅读次数:
270
文章来自:http://www.conw.net/archives/9/ (不是抄袭,那是我自己的博客,源地址查看代码有高亮) 最大连续子数列和一道很经典的算法问题,给定一个数列,其中可能有正数也可能有负数,我们的任务是找出其中连续的一个子数列(不允许空序列),使它们的和尽可能大。我们一起用多种方式 ...
分类:
编程语言 时间:
2016-09-22 14:30:23
阅读次数:
241
问题一:子数组和的最大值: 用f[i]表示以a[i]结尾的最大连续子序列和。i在0~n-1之间,最后比较所有的f[i]找到最大值。对于这样的以为动态规划,可以简化为用一个变量f滚动完成更新。 问题二:不相交子数组和之差的最大值。 我们需要将数组分成不相交的两部分,分别求所有可能的两部分的子数组的和的 ...
分类:
编程语言 时间:
2016-09-16 22:53:48
阅读次数:
240