![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习日记
文章平均质量分 52
sgxg
LingKing
SG
展开
-
Lingkang的算法学习日记4之链表归并二分排序
将每个node指向next全部断掉,以递归的方式两个两个组合,组合的时候对左右两个list排序,实现排序,当全部断连接,实际内存中会存每个node的值,再以此组合。原创 2023-09-18 12:17:12 · 57 阅读 · 0 评论 -
Lingkang的算法学习日记3-动态规划之01背包问题
给你⼀个可装载重量为 W 的背包和 N 个物品,每个物品有重量和价值两 个属性。其中第 i 个物品的重量为 wt[i] ,价值为 val[i] ,现在让你⽤ 这个背包装物品,最多能装的价值是多少?举个简单的例⼦,输⼊如下: N = 3, W = 4 wt = [2, 1, 3] val = [4, 2, 3]dp[i][j] = dp[i-1][j] 装不下。dp[a][b], a表示物品,b表示重量,dp表示最多能装的价值。本质就是穷举,状态可以根据穷举的顺序迭代。原创 2023-08-17 23:42:23 · 38 阅读 · 1 评论 -
Lingkang的算法学习日记2 - 动态规划
dp[i]为 当num[i]>num[k]时,dp[k] + 1, 前i-1个比第i个值小的num的dp最大子序列+1 的最大值就是第i个dp最长的最优子序列。dp:=make([]int, len(arr)) // init with 1 所有值。目的是找到最长上升子序列,设置dp为第index个的最长最优子序列,即知道dp[0..i-1],就可以推导出dp[i]// dp转移可以优化, 最近的一定最大。明确问题的最优子结构和状态转移方程。定义dp数组,以及如何迭代dp。3. 初始化边界条件。原创 2023-08-16 19:57:22 · 41 阅读 · 1 评论 -
Lingkang的算法学习日记-1
1. 数据结构底层只有两种,数组,链式(指针指向对象)a.树形可能性图也可以用此递归。2. 学会遍历,增删改查操作。原创 2023-08-08 00:09:35 · 54 阅读 · 0 评论