【GRPO】GRPO原理原文翻译
论文:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models

注!这里我仅仅翻译GRPO部分供学习使用。其他部分请去看原文。
4. 强化学习(Reinforcement Learning)
4.1. 群组相对策略优化(Group Relative Policy Optimization, GRPO)
强化学习(RL)已被证明可以在监督微调(Supervised Fine-Tuning, SFT)阶段后进一步提升 LLM 的数学推理能力([WizardMath, Luo et al., 2023]; [Math-Shepherd, Wang et al., 2023b])。在本节中,我们介绍一种高效且有效的 RL 算法——群组相对策略优化(GRPO)。
4.1.1. 从 PPO 到 GRPO(From PPO to GRPO)
近端策略优化(Proximal Policy Optimization, PPO)(Schulman et al., 2017)是一种Actor-Critic 风格的强化学习算法,广泛应用于 LLM 的 RL 微调阶段(Ouyang et al., 2022)。具体而言,它通过最大化以下代理目标函数来优化 LLM:
J P P O ( θ ) = E [ q ∼ P ( Q ) , o ∼ π θ o l d ( O ∣ q ) ] 1 ∣ o ∣ ∑ t = 1 ∣ o ∣ min [ π θ ( o t ∣ q , o < t ) π θ o l d ( o t ∣ q , o < t ) A t , clip ( π θ ( o t ∣ q , o < t ) π θ o l d ( o t ∣ q , o < t ) , 1 − ϵ , 1 + ϵ ) A t ] , ( 1 ) \mathcal{J}_{PPO}(\theta) = \mathbb{E}[q \sim P(Q), o \sim \pi_{\theta_{old}}(O|q)] \frac{1}{|o|} \sum_{t=1}^{|o|} \min \left[ \frac{\pi_{\theta}(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})} A_t, \text{clip} \left( \frac{\pi_{\theta}(o_t|q, o_{<t})}{\pi_{\theta_{old}}(o_t|q, o_{<t})}, 1-\epsilon, 1+\epsilon \right) A_t \right], (1) JPPO(θ)=E[q∼P(Q),o∼πθold(O∣q)]∣o∣1t=1∑∣o∣min[πθold(ot∣q,o<t)πθ(ot∣q,o<t)At,clip(πθold(ot∣q,o<t)πθ(ot∣q,o<t),1−ϵ,1+ϵ)At],(1)
其中, π θ \pi_{\theta} πθ 和 π θ o l d \pi_{\theta_{old}} πθold 分别表示当前和旧的策略模型, q , o q, o q,o 是从问题数据集中采样的问题和输出,而 π θ o l d \pi_{\theta_{old}} πθold 代表旧策略模型。 ϵ \epsilon ϵ 是一个裁剪相关的超参数,在 PPO 中引入以稳定训练过程。 A t A_t At 代表优势值(Advantage),通过广义优势估计(Generalized Advantage Estimation, GAE) 计算(Schulman et al., 2015),基于奖励 { r ≥ t } \{r_{\geq t}\} {r≥t} 和学习的值函数 V ψ V_{\psi} Vψ。
因此,在 PPO 中,价值函数需要与策略模型一起训练。为了缓解对奖励模型的过度优化,标准方法是在每个标记的奖励中添加一个来自参考模型的每标记 KL 罚项(Ouyang et al., 2022),即:
r t = r φ ( q , o ≤ t ) − β log π θ ( o t ∣ q , o < t ) π r e f ( o t ∣ q , o < t ) , ( 2 ) r_t = r_{\varphi}(q, o_{\leq t}) - \beta \log \frac{\pi_{\theta}(o_t|q, o_{<t})}{\pi_{ref}(o_t|q, o_{<t})}, (2) rt=rφ(q,o≤t)−βlogπref(ot∣q,o<t)πθ(ot∣q,o<t),(2)
其中, r φ r_{\varphi} rφ 是奖励模型, π r e f \pi_{ref} πref 是参考模型,通常为初始 SFT 模型, β \beta β 是 KL 罚项的系数。
在 PPO 中使用的值函数通常是与策略模型规模相当的另一个模型,这会带来大量的内存占用和计算负担。此外,在 RL 训练过程中,值函数被用作基线来计算优势值,以降低方差。在 LLM 训练的背景下,通常只有最后一个标记会被奖励模型赋予奖励得分,这可能会使得值函数的训练变得复杂,难以确保每个标记的准确性。
为了解决这个问题,正如 Figure 4 所示,我们提出了群组相对策略优化(Group Relative Policy Optimization, GRPO)。GRPO 不需要额外的值函数近似计算(如 PPO 中所需),而是使用同一问题的多个采样输出的平均奖励作为基线。具体而言,对于每个问题 q q q,GRPO 从旧策略 π θ o l d \pi_{\theta_{old}} πθold 采样得到一组输出 { o 1 , o 2 , ⋯ , o G } \{o_1, o_2, \cdots , o_G\} {o1,o2,⋯,oG},然后优化策略模型,使其最大化以下目标函数:
J G R P O ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ o l d ( O ∣ q ) ] \mathcal{J}_{GRPO}(\theta) = \mathbb{E}[q \sim P(Q), \{o_i\}_{i=1}^{G} \sim \pi_{\theta_{old}}(O|q)] JGRPO(θ)=E[q∼P(Q),{oi}i=1G∼πθold(O∣q)]
1 G ∑ i = 1 G 1 ∣ o i ∣ ∑ t = 1 ∣ o i ∣ ( min [ π θ ( o i , t ∣ q , o i , < t ) π θ o l d ( o i , t ∣ q , o i , < t ) A ^ i , t , clip ( π θ ( o i , t ∣ q , o i , < t ) π θ o l d ( o i , t ∣ q , o i , < t ) , 1 − ϵ , 1 + ϵ ) A ^ i , t ] − β D K L [ π θ ∣ ∣ π r e f ] ) , ( 3 ) \frac{1}{G} \sum_{i=1}^{G} \frac{1}{|o_i|} \sum_{t=1}^{|o_i|} \left( \min \left[ \frac{\pi_{\theta}(o_{i,t}|q, o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q, o_{i,<t})} \hat{A}_{i,t}, \text{clip} \left( \frac{\pi_{\theta}(o_{i,t}|q, o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q, o_{i,<t})}, 1-\epsilon, 1+\epsilon \right) \hat{A}_{i,t} \right] - \beta D_{KL} [\pi_{\theta}||\pi_{ref}] \right), (3) G1i=1∑G∣oi∣1t=1∑∣oi∣(min[πθold(oi,t∣q,oi,<t)πθ(oi,t∣q,oi,<t)A^i,t,clip(πθold(oi,t∣q,oi,<t)πθ(oi,t∣q,oi,<t),1−ϵ,1+ϵ)A^i,t]−βDKL[πθ∣∣πref]),(3)
其中, ϵ \epsilon ϵ 和 β \beta β 是超参数, A ^ i , t \hat{A}_{i,t} A^i,t 是基于群组内部的相对奖励计算的优势值,后续小节将详细介绍其计算方式。GRPO 利用群组相对奖励的方式计算优势值,这一方式与奖励模型的相对评分特性很好地对齐,因为奖励模型通常是在比较相同问题的不同输出的数据集上进行训练的。
值得注意的是,与其在奖励中添加 KL 罚项,GRPO 直接在损失函数中正则化训练策略与参考策略的 KL 散度,避免了因 KL 计算而复杂化 A ^ i , t \hat{A}_{i,t} A^i,t 的问题。

不同于在方程 (2) 中使用的 KL 罚项,我们使用以下无偏估计器(Schulman, 2020)来估计 KL 散度:
D K L [ π θ ∣ ∣ π r e f ] = π r e f ( o i , t ∣ q , o i , < t ) π θ ( o i , t ∣ q , o i , < t ) − log π r e f ( o i , t ∣ q , o i , < t ) π θ ( o i , t ∣ q , o i , < t ) − 1 , ( 4 ) D_{KL} [\pi_{\theta}||\pi_{ref}] = \frac{\pi_{ref}(o_{i,t}|q, o_{i,<t})}{\pi_{\theta}(o_{i,t}|q, o_{i,<t})} - \log \frac{\pi_{ref}(o_{i,t}|q, o_{i,<t})}{\pi_{\theta}(o_{i,t}|q, o_{i,<t})} - 1, \space \space (4) DKL[πθ∣∣πref]=πθ(oi,t∣q,oi,<t)πref(oi,t∣q,oi,<t)−logπθ(oi,t∣q,oi,<t)πref(oi,t∣q,oi,<t)−1, (4)
其中该估计器保证为正值。
4.1.2. 使用 GRPO 的结果监督强化学习(Outcome Supervision RL with GRPO)
形式化地讲,对于每个问题 q q q,从旧的策略模型 π θ o l d \pi_{\theta_{old}} πθold 采样得到一组输出 { o 1 , o 2 , ⋯ , o G } \{o_1, o_2, \cdots , o_G\} {o1,o2,⋯,oG}。然后,使用一个奖励模型对这些输出进行评分,得到 G G G 个奖励:
r = { r 1 , r 2 , ⋯ , r G } r = \{r_1, r_2, \cdots , r_G\} r={r1,r2,⋯,rG}
随后,这些奖励通过减去组平均值并除以组标准差进行归一化。结果监督仅在每个输出 o i o_i oi 结束时提供奖励,并将所有标记的优势值 A ^ i , t \hat{A}_{i,t} A^i,t 设为归一化奖励,即:
A ^ i , t = r ~ i = r i − mean ( r ) std ( r ) \hat{A}_{i,t} = \tilde{r}_i = \frac{r_i - \text{mean}(r)}{\text{std}(r)} A^i,t=r~i=std(r)ri−mean(r)
然后,通过最大化方程 (3) 中定义的目标来优化策略。
4.1.3. 使用 GRPO 的过程监督强化学习(Process Supervision RL with GRPO)
结果监督仅在每个输出结束时提供奖励,但在复杂的数学任务中,这可能不足以有效监督策略。遵循 Math-Shepherd: Verify and Reinforce LLMs Step-by-step without Human Annotations[Wang et al., 2023b] 的方法,我们进一步探索过程监督(Process Supervision),它在每个推理步骤结束时提供奖励。
具体而言,给定问题 q q q 和 G G G 个采样输出 { o 1 , o 2 , ⋯ , o G } \{o_1, o_2, \cdots , o_G\} {o1,o2,⋯,oG},过程奖励模型(Process Reward Model) 用于对每个步骤的输出进行评分,得到对应的奖励:
R = { { r 1 index ( 1 ) , ⋯ , r 1 index ( K 1 ) } , ⋯ , { r G index ( 1 ) , ⋯ , r G index ( K G ) } } R = \{\{r_1^{\text{index}(1)}, \cdots , r_1^{\text{index}(K_1)}\}, \cdots , \{r_G^{\text{index}(1)}, \cdots , r_G^{\text{index}(K_G)}\} \} R={{r1index(1),⋯,r1index(K1)},⋯,{rGindex(1),⋯,rGindex(KG)}}
其中, index ( j ) \text{index}(j) index(j) 表示第 j j j 步的终止标记索引, K i K_i Ki 是第 i i i 个输出中的总步数。
我们同样对这些奖励进行归一化,计算方式如下:
r ~ i index ( j ) = r i index ( j ) − mean ( R ) std ( R ) \tilde{r}_i^{\text{index}(j)} = \frac{r_i^{\text{index}(j)} - \text{mean}(R)}{\text{std}(R)} r~iindex(j)=std(R)riindex(j)−mean(R)
随后,过程监督计算每个标记的优势值,作为该标记后续所有奖励的归一化和,即:
A ^ i , t = ∑ index ( j ) ≥ t r ~ i index ( j ) \hat{A}_{i,t} = \sum_{\text{index}(j) \geq t} \tilde{r}_i^{\text{index}(j)} A^i,t=index(j)≥t∑r~iindex(j)
然后,通过最大化方程 (3) 中定义的目标来优化策略。
4.1.4. 迭代 GRPO 强化学习(Iterative RL with GRPO)
随着强化学习训练过程的推进,旧的奖励模型可能不足以有效监督当前的策略模型。因此,我们进一步探索迭代 GRPO 强化学习(Iterative RL with GRPO)。如算法 1 所示,在迭代 GRPO 中,我们根据策略模型的采样结果生成新的训练数据集,并通过重放机制(Replay Mechanism)结合 10% 的历史数据,持续训练旧的奖励模型。然后,我们将参考模型设置为当前策略模型,并使用更新后的奖励模型不断训练策略模型。
4.2. DeepSeekMath-RL 的训练与评估(Training and Evaluating DeepSeekMath-RL)
我们基于 DeepSeekMath-Instruct 7B 进行强化学习(RL)训练。RL 训练数据来自 SFT 数据集中与 GSM8K 和 MATH 相关的链式思维(Chain-of-Thought, CoT)格式问题,总计约 144K 个问题。为了研究 RL 在缺乏 RL 训练数据的基准测试上的影响,我们排除了其他 SFT 任务。我们依据 Math-Shepherd: Verify and Reinforce LLMs Step-by-step without Human Annotations[Wang et al., 2023b] 的方法构建奖励模型的训练数据集。
我们基于 DeepSeekMath-Base 7B 训练初始奖励模型,学习率设置为 2e-5。对于 GRPO,我们设定策略模型的学习率为 1e-6,KL 系数(KL coefficient)为 0.04。对于每个问题,我们采样 64 个输出,最大序列长度设定为 1024,训练批次大小(batch size)为 1024。在每个探索阶段后,策略模型仅进行一次更新。我们在 DeepSeekMath-Instruct 7B 相关基准测试上评估 DeepSeekMath-RL 7B 的性能。
在 DeepSeekMath-RL 7B 相关的评测中:
- DeepSeekMath-RL 7B, GSM8K 和 MATH 的链式思维推理任务被视为域内任务(In-domain tasks)。
- 其他基准测试被视为域外任务(Out-of-domain tasks)。

Table 5 展示了在英文和中文基准测试上的开放式和封闭式问题的链式思维推理(Chain-of-Thought)及工具整合推理(Tool-Integrated Reasoning)的表现。我们的研究发现:
- DeepSeekMath-RL 7B 在 GSM8K 和 MATH 上的准确率分别达到了 88.2% 和 51.7%,成功利用了链式思维推理。这一性能超越了所有开源模型(7B-70B 规模),并且在大多数封闭模型上表现优异。
- DeepSeekMath-RL 7B 仅在链式思维格式的 SFT 训练数据上进行强化学习,直接从 DeepSeekMath-Instruct 7B 开始训练。尽管 RL 训练数据量受限,DeepSeekMath-RL 7B 在所有评估指标上超越了 DeepSeekMath-Instruct 7B,展示了强化学习带来的持续改进能力。
相关文章:
【GRPO】GRPO原理原文翻译
论文:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models 注!这里我仅仅翻译GRPO部分供学习使用。其他部分请去看原文。 4. 强化学习(Reinforcement Learning) 4.1. 群组相对策略优化…...
侯捷 C++ 课程学习笔记:C++ 新标准 11/14 的革新与实战应用
在侯捷老师的 C 系列课程中,《C 新标准 11/14》这门课程让我对现代 C 编程有了全新的认识。C11 和 C14 是 C 语言发展史上的重要里程碑,它们引入了大量新特性,极大地提升了语言的表达能力和开发效率。侯捷老师通过深入浅出的讲解和丰富的实战…...
拉取Openwrt官方源码 编译固件速通
Openwrt 24.10上星期出了,但是恩山没几个人更新,自己编译一个,记录一下方法。 一切从简,不添加任何插件,资源扔恩山了。 【 】红米AX6000 openwrt V24.10.0 uboot大分区固件-小米无线路由器及小米网络设备-恩山无…...
洗牌加速!车规MCU“冷热交加”
汽车芯片赛道,正在经历新一轮震荡期。 本周,全球汽车芯片巨头—NXP对外披露了不及资本市场预期的四季度的财报,营收同比下降9%,全年下降5%,表明工业和汽车市场需求的低迷仍在持续。 公开信息显示,该公司一…...
大模型Deepseek的使用_基于阿里云百炼和Chatbox
目录 前言1. 云服务商2. ChatBox参考 前言 上篇博文中探索了(本地)部署大语言模型,适合微调、数据高隐私性等场景。随着Deepseek-R1的发布,大语言模型的可及性得到极大提升,应用场景不断增加,对高可用的方…...
【prompt示例】智能客服+智能质检业务模版
本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权&am…...
DeepSeek 本地部署(电脑安装)
1.先安装Ollama 开源框架 网址链接为:Ollama 2.点中间的下载 3.选系统 4.下载好就安装 5.输入命令ollama -v 6.点击Model 7.选如下 8.选版本 9.复杂对应命令 10.控制台粘贴下载 11.就可以问问题啦 12.配置UI界面(在扩展里面输入) 13.配置完即可打开 14.选择刚才安装的就好啦…...
初学java 数据库相关学习
创建数据库: 主键: unsigned primary key auto_increment 外键: foreign key(xx) references table_name(xx) 字段: 类型: int ; tinyint ;char(20);varchar(255); date; datetime; text; float(5,2); double(10,2); long; decimal(15,10) 约束:primary key; foreig…...
【论文笔记】ZeroGS:扩展Spann3R+GS+pose估计
spann3r是利用dust3r做了增量式的点云重建,这里zeroGS在前者的基础上,进行了增量式的GS重建以及进行了pose的联合优化,这是一篇dust3r与GS结合的具有启发意义的工作。 abstract NeRF和3DGS是重建和渲染逼真图像的流行技术。然而,…...
《Python 中 JSON 的魔法秘籍:从入门到精通的进阶指南》
在当今数字化时代,网络编程无处不在,数据的高效传输与交互是其核心。JSON 作为一种轻量级的数据交换格式,凭借其简洁、易读、跨语言的特性,成为网络编程中数据传输与存储的关键技术。无论是前后端数据交互,还是不同系统…...
【漫话机器学习系列】091.置信区间(Confidence Intervals)
置信区间(Confidence Intervals)详解 1. 引言 在统计学和数据分析中,我们通常希望通过样本数据来估计总体参数。然而,由于抽样的随机性,我们不可能得到精确的总体参数,而只能通过估计值(如均值…...
查看引脚电平
在Linux系统中,通过cat命令查看/sys/class/gpio/export文件并不能直接获取GPIO引脚的高低电平。/sys/class/gpio/export文件用于向系统请求导出(即启用)某个特定的GPIO引脚,而不是用于读取引脚的状态。 1.导出GPIO引脚࿱…...
回归预测 | Matlab实现PSO-HKELM粒子群算法优化混合核极限学习机多变量回归预测
回归预测 | Matlab实现PSO-HKELM粒子群算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现PSO-HKELM粒子群算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.回归预测 | Matlab实现PSO-HKELM粒子群算法优化混合核…...
QTreeView添加网格线
一.效果 二.实现 网格线虽然可以用样式表添加,但效果不好。这里重写QTreeView的drawRow函数来实现网格线的绘制。 void QHTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {QTreeView::drawRow(painter…...
nvidia-smi执行失败,报错-实战生产
目录 报错日志 解决办法 步骤 1: 检查当前安装的 NVIDIA 驱动版本 步骤 2: 检查 NVIDIA 内核模块是否已加载 步骤 3: 重新安装 NVIDIA 驱动程序 使用 apt 重新安装驱动程序 或者使用 dkms 重新生成内核模块 步骤 4: 确认内核版本和驱动兼容性 步骤 5: 更新 initramfs …...
大脑神经网络与机器神经网络的区别
大脑神经网络(生物神经网络)与机器神经网络(人工神经网络,ANN)虽然名称相似,但在结构、功能、学习机制等方面存在显著差异。以下是两者的主要区别: 1. 基础结构与组成 大脑神经网络: 由 生物神经元(约860亿个)通过突触连接形成动态网络。 神经元通过电化学信号(动作…...
firewall-cmd --zone=public --list-ports 已经添加端口了但是仍无法访问
当您使用 firewall-cmd 命令在 Linux 系统中配置防火墙规则时,确保端口可以被访问通常涉及几个步骤。即使您已经使用 firewall-cmd 添加了端口,但仍可能遇到无法访问的问题。以下是一些解决步骤,帮助您确认和解决端口无法访问的问题ÿ…...
Golang的多团队协作编程模式与实践经验
Golang的多团队协作编程模式与实践经验 一、多团队协作编程模式概述 在软件开发领域,多团队协作编程是一种常见的工作模式。特别是对于大型项目来说,不同团队间需要协同合作,共同完成复杂的任务。Golang作为一种高效、并发性强的编程语言&…...
DevOps 进化论:腾讯云 CODING-TM 如何助力企业敏捷转型?
在当今数字化竞争激烈的时代,企业的软件开发模式正经历从传统开发向敏捷开发、DevOps 转型的深刻变革。如何在保证代码质量的同时,加快开发、测试与交付流程,成为众多企业研发团队面临的核心挑战。腾讯云 CODING-TM 作为一站式 DevOps 平台&a…...
前端骨架怎样实现
前端骨架屏(Skeleton Screen)是一种优化页面加载体验的技术,通常在内容加载时展示一个简易的占位符,避免用户看到空白页面。骨架屏通过展示页面结构的骨架样式,让用户有页面正在加载的感觉,而不是等待内容加…...
AI前端开发的学习成本与回报——效率革命的曙光
近年来,人工智能技术飞速发展,深刻地改变着各行各业。在软件开发领域,AI写代码工具的出现更是掀起了一场效率革命。AI前端开发,作为人工智能技术与前端开发技术的完美结合,正展现出巨大的发展潜力,为开发者…...
[NOIP2007 普及组] 奖学金 题解
(一)读懂题目 关键句:期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,…...
[创业之路-297]:经济周期与股市、行业的关系
目录 一、经济周期的种类 1、短周期(基钦周期) 2、中周期(朱格拉周期) 3、长周期(康德拉季耶夫周期) 当下处于康波周期的哪个阶段? 4、建筑周期(库涅茨周期) 二、…...
Dav_笔记14:优化程序提示 HINTs -3
查询转换的提示 以下每个提示都指示优化程序使用特定的SQL查询转换: ■NO_QUERY_TRANSFORMATION ■USE_CONCAT ■NO_EXPAND ■REWRITE和NO_REWRITE ■MERGE和NO_MERGE ■STAR_TRANSFORMATION和NO_STAR_TRANSFORMATION ■事实和NO_FACT ■UNNEST和NO_UNNEST…...
递归乘法算法
文章目录 递归乘法题目链接题目详解解题思路:代码实现: 结语 欢迎大家阅读我的博客,给生活加点impetus!! 让我们进入《题海探骊》,感受算法之美!! 递归乘法 题目链接 在线OJ 题目…...
从当下到未来:蓝耘平台和 DeepSeek 应用实践的路径探索,勾勒 AI 未来新蓝图
我的个人主页 我的专栏:人工智能领域,希望能帮助到大家!!!点赞👍收藏❤ 引言:AI 浪潮中的双引擎 在人工智能蓬勃发展的时代,蓝耘平台与 DeepSeek 宛如推动这一浪潮前进的双引擎。…...
非标准纸张Word文件无损转换为A4标准纸张的完整教程
在日常办公中,常会遇到需要将非标准纸张大小的Word文档(如A3、B5等)调整为A4标准尺寸的需求。直接修改Word页面设置可能导致排版错乱,而通过 Adobe Acrobat 的印前检查功能可实现内容格式无损缩放。以下是详细操作流程: 一、Word转PDF:保留原始布局 保存为PDF格式 在Word…...
Xlua中C#引用Lua变量,导致Lua侧的GC无法回收的原因及解决方法
1. 引用关系导致: 在 XLua 中,当 C# 端引用了 Lua 变量时,Lua 的垃圾回收器(GC)不会回收这些被引用的变量。这是因为 Lua 的 GC 机制是基于引用计数和标记 - 清除算法的。当 C# 端持有对 Lua 变量的引用时,…...
38.日常算法
1.最短无序连续子数组 题目来源 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入…...
Leetcode 算法题 9 回文数
起因, 目的: 数学法。 % 求余数, 拆开组合,组合拆开。 这个题,翻来覆去,拆开组合, 组合拆开。构建的过程。 题目来源,9 回文数: https://leetcode.cn/problems/palindrome-number…...
