把一个数组分成m个连续子数组(不能有空数组),求所有分法中,子数组sum的最大值的最小值。 方法1:容易想到的是动态规划 dp[i][j] = min(max(dp[k-1][j-1], sum[k][i]) 1 <= k <= i, dp[i][j]表示用前i个数字,分成j组,最大和的最小值 ti ...
分类:
其他好文 时间:
2020-03-20 10:37:12
阅读次数:
47
## 一、最大子序列和给定一个数组,求出其最大的子序列之和定义d[i]代表以下标为i元素的最大子序列和则d[i] = d[i-1] > 0 ? d[i-1] + a[i] : a[i]算法:```cint maxSubArray(int* nums, int numsSize){ if(numsSi ...
分类:
其他好文 时间:
2020-03-16 09:22:44
阅读次数:
35
nltk.parse句法分析 1).上下文无关文法 2).递归下降解析器 3).图表分析,动态规划 from nltk.parse import * parser = CoreNLPParser(url='http://localhost:9966') tokens = 'Rami Eid is s ...
分类:
其他好文 时间:
2020-03-16 09:22:31
阅读次数:
72
一.动态规划 适合用动态规划的问题的基本特征 参考 https://zhidao.baidu.com/question/561484516800579644.html 1.最优子结构 母问题的最优解包含其子问题的最优解,即具有最优子结构,即子问题最优时,母问题通过优化一定能获得最优解 2.子问题重叠 ...
分类:
其他好文 时间:
2020-03-15 13:40:34
阅读次数:
49
Given an array A of non-negative integers, return the maximum sum of elements in two non-overlapping (contiguous) subarrays, which have lengths L and ...
分类:
移动开发 时间:
2020-03-15 09:54:01
阅读次数:
75
LeetCode(传送门)最近搞了一个每日刷题的活动,还挺有意思的。前两天的题比较简单,今天的题目比较有意思,记录一下。 300 最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 ...
分类:
其他好文 时间:
2020-03-14 21:41:07
阅读次数:
45
300.最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法 ...
分类:
其他好文 时间:
2020-03-14 18:28:03
阅读次数:
53
[TOC] Leetcode 70 爬楼梯 题名:爬楼梯 描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 具体描述请查看Leetcode相关网页: 方法:动态规划(递推) 首先要明确动态规 ...
分类:
编程语言 时间:
2020-03-14 13:17:06
阅读次数:
69
1. 概述 Floyd算法是一个经典的 动态规划 算法,是解决任意两点间的最短路径(称为多源最短路径问题)的一种算法 也可以正确处理有向图或负权的最短路径问题 Dijkstra ~ Floyd Dijkstra算法 单源最短路径,计算图中某一个顶点到其他顶点的最短路径 选定一个顶点作为出发访问顶点, ...
分类:
编程语言 时间:
2020-03-14 01:21:40
阅读次数:
61
有2元的 5元的 7元的 硬币若干,凑出27元,需要最小硬币数 这是一个动态规划问题,对动态规划求解的思路如下: 1.确定状态:确定最后一步和倒数第二步之间的关系,就是把后面的问题转化为前面的子问题 x可以由x-2的情况再选面值2的硬币得到,也可以由x-5的情况选5面值的得到,还可以由x-7由面值7 ...
分类:
其他好文 时间:
2020-03-14 00:53:57
阅读次数:
74