算法
未来的酱
这个作者很懒,什么都没留下…
展开
-
最长递增子序列长度及内容
在题解区找到3个比较好的方法,记录一下。 方法一:暴力动态规划(超时) 具体做法: 遍历两层,前面的指针i记录元素,后面指针j比较与前面的值,若是前面大,理论上dp[i]需要加上1,但是需要用dp[i] < dp[j] + 1判断是否是需要这个j,若是还有更大的就不需要这个j。但是因为两层遍历,时间复杂度很高,会超时。 class Solution { public: vector<int> LIS(vector<int>& arr) { ve.转载 2021-08-24 13:01:21 · 152 阅读 · 0 评论 -
c++算法1
1. 二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 分析 1、每行最大的数字在最后一个位置,全局最大数字在右下角。 2、可以从右上角或者左下角开始查找,这样一次就可以排除一行或一列,效率高。 代码 // An highlighted block class Solution { public: bool Find(int ta原创 2020-08-10 18:38:52 · 176 阅读 · 1 评论 -
动态规划问题例题总结1
动态规划问题例题总结1动规概念和本质动规题目详解1.Fibonacci题解方法一递归代码方法二动规代码方法三动规优化代码2.字符串分割题解动规代码三角矩阵题解动规代码 动规概念和本质 动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。 动态规划具备了以下三个特点: 把原来的问题分解成了几个相似的子问题。 所有的子问题都只需要解决一次。 储存子问题的解。 动态规划的本质,是原创 2020-08-03 18:26:27 · 443 阅读 · 0 评论