![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM-DP
ACM-DP
_lizhiqiang
种一棵树最好的时间是十年前,其次是现在。
展开
-
动态规划入门 之 最大子序和 dp or 分治 (循序渐进)
最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 方法一、暴力解法 比较容易想到的是用“暴力解法”做,即穷举所有的子区间。思路虽然简单,但是写好暴力解法也不是一件容易的事情。 使用双层循环,穷举所有的子区间; 然后再对子区原创 2020-06-20 20:35:07 · 378 阅读 · 0 评论 -
nyoj15括号匹配(二)
括号匹配(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:6 描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。 如: []是匹配的 ([])[]是匹配的 ((]是不匹配的 ([)]是不匹配的 输入第一行输入一个正整数N,表示测试数据组数(N 每组测试数原创 2014-09-24 18:47:43 · 762 阅读 · 0 评论 -
最长上升子序列(LIS)长度的O(n^2)与O(nlogn)算法
刚才用O(n^2)的DP算法做了最长上升子序列,具体见POJ2533解题报告。后来在网上看到说LIS问题有O(nlogn)的算法,于是拿来小研究了一下。 这个算法其实已经不是DP了,有点像贪心。至于复杂度降低其实是因为这个算法里面用到了二分搜索。本来有N个数要处理是O(n),每次计算要查找N次还是O(n),一共就是O(n^2);现在搜索换成了O(logn)的二分搜索,总的复杂度就变为O(nl转载 2014-09-25 20:42:20 · 747 阅读 · 0 评论