强化学习算法分类与介绍(含权重更新公式)

强化学习算法种类丰富,可按学习目标 (基于价值 / 基于策略 / 演员 - 评论家)、数据使用方式 (在线 / 离线)、是否依赖环境模型(无模型 / 有模型)等维度分类。以下按核心逻辑梳理常见算法,并补充各算法的权重更新公式:

一、基于价值的算法(Value-Based)

目标是学习 "状态 - 动作价值函数"(Q 函数),通过 Q 值指导动作选择(如选 Q 值最大的动作)。

  1. Q-Learning(表格型,1989):

    经典无模型离线(Off-policy)算法,用贝尔曼方程更新 Q 表格:Q(s,a)←Q(s,a)+α[r+γmax⁡a′Q(s′,a′)−Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)]Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]

    其中,α\alphaα为学习率,γ\gammaγ为折扣因子,rrr为即时奖励,s′s's′为下一状态。

    适合状态 / 动作空间小的场景(如网格世界)。

  2. SARSA(表格型,1994):

    在线(On-policy)算法,更新 Q 值时依赖实际选择的下一个动作(而非最大 Q 值):Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s',a') - Q(s,a)]Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]

    其中,a′a'a′为实际执行的下一动作,更注重 "当前策略的一致性",适合需要探索安全性的场景。

  3. DQN(Deep Q-Network,2013)

    深度强化学习里程碑,用神经网络近似 Q 函数(深度 Q 网络),解决高维状态空间问题(如 Atari 游戏)。

    核心改进:经验回放(Experience Replay,打破样本相关性)、目标网络(Target Network,稳定训练)。

    损失函数(更新 Q 网络权重θ\thetaθ):L(θ)=E[(r+γmax⁡a′Qθ−(s′,a′)−Qθ(s,a))2]L(\theta) = \mathbb{E}[(r + \gamma \max_{a'} Q_{\theta^-}(s',a') - Q_\theta(s,a))^2]L(θ)=E[(r+γmaxa′Qθ−(s′,a′)−Qθ(s,a))2]

    权重更新:θ←θ−β∇θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ−β∇θL(θ)(β\betaβ为 Q 网络学习率,θ−\theta^-θ−为目标网络权重,定期从θ\thetaθ复制)。

  4. Double DQN(DDQN,2015)

    解决 DQN 的 "过度估计 Q 值" 问题:用当前网络选动作,目标网络算 Q 值,避免单一网络既选又评的偏差。

    损失函数:L(θ)=E[(r+γQθ−(s′,arg⁡max⁡a′Qθ(s′,a′))−Qθ(s,a))2]L(\theta) = \mathbb{E}[(r + \gamma Q_{\theta^-}(s', \arg\max_{a'} Q_\theta(s',a')) - Q_\theta(s,a))^2]L(θ)=E[(r+γQθ−(s′,argmaxa′Qθ(s′,a′))−Qθ(s,a))2]

    权重更新同 DQN。

  5. Dueling DQN(2015)

    将 Q 网络拆分为 "状态价值 V (s)" 和 "优势函数 A (s,a)",输出 Q(s,a)=V(s)+A(s,a)−1∣A∣∑aA(s,a)Q(s,a) = V(s) + A(s,a) - \frac{1}{|A|}\sum_a A(s,a)Q(s,a)=V(s)+A(s,a)−∣A∣1∑aA(s,a)(减去均值避免歧义)。

    损失函数同 DQN(用拆分后的 Q 值计算),权重更新:θ←θ−β∇θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ−β∇θL(θ)。

  6. Prioritized Experience Replay(PER,2016)

    改进 DQN 的经验回放,给 "误差大的样本" 更高采样优先级(如 TD 误差δ=r+γmax⁡Q(s′,a′)−Q(s,a)\delta = r + \gamma \max Q(s',a') - Q(s,a)δ=r+γmaxQ(s′,a′)−Q(s,a))。

    损失函数:L(θ)=∑iwi(ri+γmax⁡a′Qθ−(si′,a′)−Qθ(si,ai))2L(\theta) = \sum_i w_i (r_i + \gamma \max_{a'} Q_{\theta^-}(s'i,a') - Q\theta(s_i,a_i))^2L(θ)=∑iwi(ri+γmaxa′Qθ−(si′,a′)−Qθ(si,ai))2

    其中,wi=(1N⋅1P(i))ηw_i = (\frac{1}{N} \cdot \frac{1}{P(i)})^\etawi=(N1⋅P(i)1)η为优先级权重(P(i)P(i)P(i)为样本iii的优先级,η\etaη为调整因子),权重更新同 DQN。

  7. Rainbow(2017)

    集成 DQN 的 6 种改进(Double DQN、Dueling DQN、PER、多步回报、C51、噪声网络),损失函数为集成后的综合损失,权重更新结合各组件优化逻辑。

  8. 分布型价值算法

  • C51(Categorical DQN,2017) :学习 Q 值的概率分布p(z∣s,a)p(z|s,a)p(z∣s,a)(zzz为离散回报值),目标分布为p′(z)=∑r+γz′=zp(r,s′∣s,a)pθ(z′∣s′,a′)p'(z) = \sum_{r + \gamma z' = z} p(r,s'|s,a) p_\theta(z'|s',a')p′(z)=∑r+γz′=zp(r,s′∣s,a)pθ(z′∣s′,a′)。

    损失函数(交叉熵):L(θ)=−E[∑zp′(z)log⁡pθ(z∣s,a)]L(\theta) = -\mathbb{E}[\sum_z p'(z) \log p_\theta(z|s,a)]L(θ)=−E[∑zp′(z)logpθ(z∣s,a)],权重更新:θ←θ−β∇θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ−β∇θL(θ)。

  • QR-DQN(Quantile Regression DQN,2017):用分位数回归估计 Q 值分布,损失函数为分位数 Huber 损失,权重更新同 C51。

二、基于策略的算法(Policy-Based)

直接学习策略函数 π(a∣s;θ)\pi(a|s;\theta)π(a∣s;θ)(动作的概率分布),通过优化策略梯度最大化累积回报,适合连续动作空间。

  1. REINFORCE(1992)

    蒙特卡洛策略梯度算法,用完整轨迹的回报作为梯度更新权重,公式:∇θJ(θ)≈∑t=0T∇θlog⁡πθ(at∣st)⋅Gt\nabla_\theta J(\theta) \approx \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t∇θJ(θ)≈∑t=0T∇θlogπθ(at∣st)⋅Gt

    其中,Gt=∑k=tTγk−trkG_t = \sum_{k=t}^T \gamma^{k-t} r_kGt=∑k=tTγk−trk为从时刻ttt开始的累积回报。

    权重更新:θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)(α\alphaα为策略学习率)。

    缺点:方差大(依赖完整轨迹)。

  2. Vanilla Policy Gradient(VPG,基础策略梯度)

    REINFORCE 的简化版,用累积回报直接更新策略,是多数策略算法的基础。

    梯度公式同 REINFORCE,权重更新:θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。

  3. TRPO(Trust Region Policy Optimization,2015)

    解决策略梯度 "更新步长难控制" 的问题,通过 "信任域" 限制策略更新幅度,保证性能单调提升。

    优化目标:max⁡θE[πθ(a∣s)πθold(a∣s)Aθold(s,a)]\max_\theta \mathbb{E}[ \frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)} A_{\theta_{old}}(s,a) ]maxθE[πθold(a∣s)πθ(a∣s)Aθold(s,a)],约束E[KL(πθold(⋅∣s),πθ(⋅∣s))]≤δ\mathbb{E}[ \text{KL}(\pi_{\theta_{old}}(\cdot|s), \pi_\theta(\cdot|s)) ] \leq \deltaE[KL(πθold(⋅∣s),πθ(⋅∣s))]≤δ(δ\deltaδ为信任域半径)。

    权重更新:通过共轭梯度法求解带约束优化问题,更新θ\thetaθ。

  4. PPO(Proximal Policy Optimization,2017)

    TRPO 的简化高效版,用 "剪辑目标函数"(Clip Objective)限制新旧策略差异,训练稳定、实现简单。

    目标函数:LCLIP(θ)=E[min⁡(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]L_{CLIP}(\theta) = \mathbb{E}[ \min(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t) ]LCLIP(θ)=E[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]

    其中,rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}rt(θ)=πθold(at∣st)πθ(at∣st)为策略比率,ϵ\epsilonϵ为剪辑系数(通常取 0.2),AtA_tAt为优势函数。

    权重更新:θ←θ+α∇θLCLIP(θ)\theta \leftarrow \theta + \alpha \nabla_\theta L_{CLIP}(\theta)θ←θ+α∇θLCLIP(θ)(多轮小批量更新)。

  5. DPG(Deterministic Policy Gradient,2014)

    针对连续动作空间,学习确定性策略 a=μ(s;θ)a = \mu(s;\theta)a=μ(s;θ)(而非概率分布),梯度计算更高效。

    策略梯度:∇θJ(θ)=E[∇θμ(s;θ)∇aQ(s,a;ϕ)∣a=μ(s;θ)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \mu(s;\theta) \nabla_a Q(s,a;\phi) |_{a=\mu(s;\theta)} ]∇θJ(θ)=E[∇θμ(s;θ)∇aQ(s,a;ϕ)∣a=μ(s;θ)](ϕ\phiϕ为 Q 函数权重)。

    权重更新:θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。

三、演员 - 评论家算法(Actor-Critic,AC)

结合 "策略(Actor)" 和 "价值函数(Critic)":Actor 负责输出动作,Critic 评估动作好坏(用 TD 误差替代蒙特卡洛回报),降低方差,提升效率。

  1. 基础 AC
  • Critic(V 函数,权重ϕ\phiϕ)更新:L(ϕ)=E[(Gt−Vϕ(st))2]L(\phi) = \mathbb{E}[(G_t - V_\phi(s_t))^2]L(ϕ)=E[(Gt−Vϕ(st))2],ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。

  • Actor(策略π\piπ,权重θ\thetaθ)更新:∇θJ(θ)=E[∇θlog⁡πθ(at∣st)(Gt−Vϕ(st))]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \log \pi_\theta(a_t|s_t) (G_t - V_\phi(s_t)) ]∇θJ(θ)=E[∇θlogπθ(at∣st)(Gt−Vϕ(st))],θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。

  1. A2C(Advantage Actor-Critic,2016)

    用 "优势函数 A(s,a)=Q(s,a)−V(s)A(s,a) = Q(s,a) - V(s)A(s,a)=Q(s,a)−V(s)" 替代 Critic 的原始回报,进一步降低方差。

  • Critic(V 函数)更新:同基础 AC,ϕ←ϕ−β∇ϕE[(r+γVϕ(s′)−Vϕ(s))2]\phi \leftarrow \phi - \beta \nabla_\phi \mathbb{E}[(r + \gamma V_\phi(s') - V_\phi(s))^2]ϕ←ϕ−β∇ϕE[(r+γVϕ(s′)−Vϕ(s))2]。

  • Actor 更新:∇θJ(θ)=E[∇θlog⁡πθ(a∣s)A(s,a)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \log \pi_\theta(a|s) A(s,a) ]∇θJ(θ)=E[∇θlogπθ(a∣s)A(s,a)],θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。

  1. A3C(Asynchronous Advantage Actor-Critic,2016)

    A2C 的异步版本,多个线程并行探索,本地更新后同步到全局参数,更新公式同 A2C(异步执行)。

  2. DDPG(Deep Deterministic Policy Gradient,2015)

    结合 DQN 和 DPG,用于连续动作空间:

  • Critic(Q 网络,权重ϕ\phiϕ)更新:L(ϕ)=E[(r+γQϕ−(s′,μθ−(s′))−Qϕ(s,a))2]L(\phi) = \mathbb{E}[(r + \gamma Q_{\phi^-}(s', \mu_{\theta^-}(s')) - Q_\phi(s,a))^2]L(ϕ)=E[(r+γQϕ−(s′,μθ−(s′))−Qϕ(s,a))2],ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)(ϕ−\phi^-ϕ−、θ−\theta^-θ−为目标网络权重)。

  • Actor(策略μ\muμ,权重θ\thetaθ)更新:∇θJ(θ)=E[∇aQϕ(s,a)∣a=μθ(s)∇θμθ(s)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_a Q_\phi(s,a) |{a=\mu\theta(s)} \nabla_\theta \mu_\theta(s) ]∇θJ(θ)=E[∇aQϕ(s,a)∣a=μθ(s)∇θμθ(s)],θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。

  1. TD3(Twin Delayed DDPG,2018)

    改进 DDPG 的 "过度估计" 问题,双 Critic 网络取最小值:

  • Critic 更新:L(ϕi)=E[(r+γmin⁡j=1,2Qϕj−(s′,μθ−(s′))−Qϕi(s,a))2]L(\phi_i) = \mathbb{E}[(r + \gamma \min_{j=1,2} Q_{\phi_j^-}(s', \mu_{\theta^-}(s')) - Q_{\phi_i}(s,a))^2]L(ϕi)=E[(r+γminj=1,2Qϕj−(s′,μθ−(s′))−Qϕi(s,a))2],ϕi←ϕi−β∇ϕiL(ϕi)\phi_i \leftarrow \phi_i - \beta \nabla_{\phi_i} L(\phi_i)ϕi←ϕi−β∇ϕiL(ϕi)(i=1,2i=1,2i=1,2)。

  • Actor 延迟更新(每 2 次 Critic 更新后):同 DDPG 的 Actor 更新。

  1. SAC(Soft Actor-Critic,2018)

    最大熵强化学习代表,目标是 "最大化累积回报 + 策略熵":

  • Critic(双 Q 网络)更新:L(ϕi)=E[(r+γ(min⁡j=1,2Qϕj−(s′,a′)−αlog⁡πθ−(a′∣s′))−Qϕi(s,a))2]L(\phi_i) = \mathbb{E}[ (r + \gamma (\min_{j=1,2} Q_{\phi_j^-}(s',a') - \alpha \log \pi_{\theta^-}(a'|s')) - Q_{\phi_i}(s,a))^2 ]L(ϕi)=E[(r+γ(minj=1,2Qϕj−(s′,a′)−αlogπθ−(a′∣s′))−Qϕi(s,a))2],ϕi←ϕi−β∇ϕiL(ϕi)\phi_i \leftarrow \phi_i - \beta \nabla_{\phi_i} L(\phi_i)ϕi←ϕi−β∇ϕiL(ϕi)。

  • Actor 更新:∇θJ(θ)=E[αlog⁡πθ(a∣s)−Qϕ1(s,a)]\nabla_\theta J(\theta) = \mathbb{E}[ \alpha \log \pi_\theta(a|s) - Q_{\phi_1}(s,a) ]∇θJ(θ)=E[αlogπθ(a∣s)−Qϕ1(s,a)](α\alphaα为温度参数),θ←θ+α∇θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α∇θJ(θ)。

四、基于模型的强化学习(Model-Based)

先学习环境模型(状态转移概率 p(s′∣s,a)p(s'|s,a)p(s′∣s,a) 和奖励函数 r(s,a)r(s,a)r(s,a)),再用模型指导策略学习,数据效率更高。

  1. Dyna-Q(1991)
  • 模型参数更新:用真实数据学习p^(s′∣s,a)\hat{p}(s'|s,a)p^(s′∣s,a)和r^(s,a)\hat{r}(s,a)r^(s,a)(如最小二乘拟合)。

  • Q 值更新:结合真实经验(同 Q-Learning)和模型生成的虚拟经验(s′∼p^(⋅∣s,a)s' \sim \hat{p}(\cdot|s,a)s′∼p^(⋅∣s,a),r=r^(s,a)r = \hat{r}(s,a)r=r^(s,a))。

  1. MBPO(Model-Based Policy Optimization,2019)
  • 模型更新:用神经网络拟合p(s′∣s,a)p(s'|s,a)p(s′∣s,a),损失为预测误差L=E[∥s′−p^(s′∣s,a)∥2]L = \mathbb{E}[ \|s' - \hat{p}(s'|s,a)\|^2 ]L=E[∥s′−p^(s′∣s,a)∥2]。

  • 策略更新:用模型生成虚拟轨迹,通过 PPO 优化策略(同 PPO 公式)。

五、离线强化学习(Offine RL)

仅利用固定数据集训练策略,解决实际场景中 "交互成本高 / 危险" 的问题。

  1. BCQ(Batch-Constrained Q-Learning,2018)
  • Q 网络更新:L(ϕ)=E(s,a,r,s′)∼D[(r+γmax⁡a′∈Aϵ(s′)Qϕ−(s′,a′)−Qϕ(s,a))2]L(\phi) = \mathbb{E}{(s,a,r,s') \sim D}[ (r + \gamma \max{a' \in \mathcal{A}\epsilon(s')} Q{\phi^-}(s',a') - Q_\phi(s,a))^2 ]L(ϕ)=E(s,a,r,s′)∼D[(r+γmaxa′∈Aϵ(s′)Qϕ−(s′,a′)−Qϕ(s,a))2](Aϵ(s′)\mathcal{A}_\epsilon(s')Aϵ(s′)为数据集动作附近的安全动作集)。

  • 权重更新:ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。

  1. CQL(Conservative Q-Learning,2020)
  • Q 网络更新:L(ϕ)=DQNæY¨a˚¤±+λE[log⁡∑aexp⁡(Qϕ(s,a))−Qϕ(s,a)]L(\phi) = \text{DQN损失} + \lambda \mathbb{E}[ \log \sum_a \exp(Q_\phi(s,a)) - Q_\phi(s,a) ]L(ϕ)=DQNæY¨a˚¤±+λE[log∑aexp(Qϕ(s,a))−Qϕ(s,a)](第二项为保守项,压低未见过的动作 Q 值),ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。

六、多智能体强化学习(MARL)

多个智能体在同一环境中交互,需考虑智能体间的协作 / 竞争关系。

  1. MADDPG(Multi-Agent DDPG,2017)
  • 智能体iii的 Actor 更新:同 DDPG,梯度依赖全局 Critic 对联合动作的评估。

  • 全局 Critic 更新:L(ϕ)=E[(r+γQϕ−(s′,a1′,...,aN′)−Qϕ(s,a1,...,aN))2]L(\phi) = \mathbb{E}[ (r + \gamma Q_{\phi^-}(s',a'1,...,a'N) - Q\phi(s,a_1,...,a_N))^2 ]L(ϕ)=E[(r+γQϕ−(s′,a1′,...,aN′)−Qϕ(s,a1,...,aN))2],ϕ←ϕ−β∇ϕL(ϕ)\phi \leftarrow \phi - \beta \nabla\phi L(\phi)ϕ←ϕ−β∇ϕL(ϕ)。

  1. QMIX(2018)

    全局 Q 值Qtotal(s,a1,...,aN)=MIX(q1(s,a1),...,qN(s,aN);ω)Q_{total}(s,a_1,...,a_N) = \text{MIX}(q_1(s,a_1),...,q_N(s,a_N); \omega)Qtotal(s,a1,...,aN)=MIX(q1(s,a1),...,qN(s,aN);ω)(MIX\text{MIX}MIX为混合网络,ω\omegaω为权重)。

  • 混合网络更新:L(ω)=E[(r+γmax⁡a′Qtotal(s′,a′)−Qtotal(s,a))2]L(\omega) = \mathbb{E}[ (r + \gamma \max_{a'} Q_{total}(s',a') - Q_{total}(s,a))^2 ]L(ω)=E[(r+γmaxa′Qtotal(s′,a′)−Qtotal(s,a))2],ω←ω−β∇ωL(ω)\omega \leftarrow \omega - \beta \nabla_\omega L(\omega)ω←ω−β∇ωL(ω)。

其他重要算法

  • N-step TD :用 N 步回报更新,如 V 函数更新:V(st)←V(st)+α[Gt:t+n−V(st)]V(s_t) \leftarrow V(s_t) + \alpha [G_{t:t+n} - V(s_t)]V(st)←V(st)+α[Gt:t+n−V(st)],其中Gt:t+n=∑k=tt+n−1γk−trk+γnV(st+n)G_{t:t+n} = \sum_{k=t}^{t+n-1} \gamma^{k-t} r_k + \gamma^n V(s_{t+n})Gt:t+n=∑k=tt+n−1γk−trk+γnV(st+n)。

  • H-DQN(分层):高层策略选子目标,低层策略更新同 DQN,高层策略梯度依赖低层目标达成的回报。

这些算法的权重更新公式体现了各自的优化逻辑,从简单的表格更新到深度网络的梯度下降,从单步更新到多步规划,共同推动强化学习在复杂场景中的应用。

(注:文档部分内容可能由 AI 生成)

相关推荐
小xin过拟合29 分钟前
day20 二叉树part7
开发语言·数据结构·c++·笔记·算法
lxmyzzs2 小时前
【图像算法 - 23】工业应用:基于深度学习YOLO12与OpenCV的仪器仪表智能识别系统
人工智能·深度学习·opencv·算法·计算机视觉·图像算法·仪器仪表识别
Learn Beyond Limits2 小时前
Multi-output Classification and Multi-label Classification|多输出分类和多标签分类
人工智能·深度学习·神经网络·算法·机器学习·分类·吴恩达
张较瘦_2 小时前
[论文阅读] 软件工程 | GPS算法:用“路径摘要”当向导,软件模型检测从此告别“瞎找bug”
论文阅读·算法·bug
2401_858286113 小时前
OS26.【Linux】进程程序替换(下)
linux·运维·服务器·开发语言·算法·exec·进程
薛定谔的旺财3 小时前
深度学习分类网络初篇
网络·深度学习·分类
张同学的IT技术日记3 小时前
【奇妙的数据结构世界】用图像和代码对队列的使用进行透彻学习 | C++
算法
KarrySmile3 小时前
Day8--HOT100--160. 相交链表,206. 反转链表,234. 回文链表,876. 链表的中间结点
数据结构·算法·链表·双指针·快慢指针·hot100·灵艾山茶府
luckycoding3 小时前
1424. 对角线遍历 II
算法·leetcode·职场和发展