![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法分析与设计
文章平均质量分 79
LG.田猿
Stay foolish
展开
-
0-1背包问题&背包问题(动规/回溯/分支限界法&贪心)
(一)0-1背包问题【动态规划法】、【回溯法】、【优先队列式分支限界法】的求解、实现(二)背包问题【贪心算法】的求解、实现(三)考虑容积的0-1背包问题【动态规划法】的求解、实现(四)完全背包问题、多重背包问题简述原创 2021-06-27 11:57:24 · 4695 阅读 · 0 评论 -
最长单调递增子序列(时间复杂度O(nlogn))
写在前面:仅为个人代码/总结,未必标准,仅供参考!如有错误,还望指出交流,共同进步!最长单调递增子序列【题目描述】找出由n个数组成的序列中的最长单调递增子序列及其长度。【O(n*n)算法解题思路】思路一:用数组 b[0:n-1]记录以a[i] (0≤i<n) 为结尾元素的最长递增子序列的长度。序列a的最长递增子序列的长度为max {b[i]} (0≤i<n) 。易知,b[i]满足最优子结构性质,可以递归定义为:b[0]=1, b[i]=max{b[k]}+1(0≤k≤i)。思路二.原创 2021-04-25 20:25:35 · 4894 阅读 · 1 评论 -
金币阵列问题
写在前面:仅为个人代码/总结,未必标准,仅供参考!如有错误,还望指出交流,共同进步!金币阵列问题【算法思想】枚举初始状态每列变换为目标状态第1列的情况,在枚举过程中寻找变换次数的情况。①首先判断目标矩阵中每一行的0的个数是否与原矩阵对应行的0或1的个数相等,若不相等则目标矩阵不能由原矩阵变换而来,直接输出-1。②首先将每一列运用列交换为第1列③然后对每一行进行判断,如果元素与目标元素不相等,则进行行翻转处理④最后向后判断后面列是否相同②~④步可具体步骤如下:(1)将矩阵中的每一列作为.原创 2021-03-28 22:00:11 · 361 阅读 · 1 评论