LeetCode15:三数之和

题目描述: 重点:与两数之和不同,两数之和只用返回一个下标组合,三数之和是返回所有元素组合,且不重复 方法1:使用双指针,对数组排序后,i 从0遍历到 n-3,左指针是 i+1,右指针是 n-1,然后记得去重 如果nums[i]大于0,返回结果 如果nums[i] + nums[left]大于0,遍


PPO

是一种基于策略梯度的强化学习方法 是TRPO的一个改进的版本,都引入了对策略更新幅度(保证了策略的稳定单调提升),只不过TRPO采用的是硬约束的形式,得使用二阶优化方法(比如共轭梯度),效率低,PPO将硬约束变成了软约束 为了实现对策略更新幅度的软约束,ppo通常在目标函数里面剪切新旧策略的比率,或


强化学习八股

1:在RLHF中,PPO、DPO、GRPO有什么区别,loss是什么样的、各自的优缺点是啥 共同点:三者都属于策略优化的方法 PPO(近端策略优化):是一种在线强化学习的方法(但是因为限定了更新的幅度,所以可以利用部分之前的数据),构建奖励模型,依赖Critic模型


LeetCode455:分发饼干

题目描述: 方法1:贪心算法,将胃口和饼干从小到大排序,然后从最大的胃口值开始,不断迭代用最大的饼干去满足 class Solution { public: int findContentChildren(vector<int>& g, vector<int>& s) { s


Transformer八股

1:为什么使用多头注意力,为啥不使用一个头 表达能力:多头注意力可以更好的捕捉序列中的不同信息,不同的头可以分别去关注序列中的不同内容 计算效率:如果使用一个注意力头,要达到一个比较好的效果,需要一个维度比较大的矩阵,计算复杂度高,多头注意力虽然有多个矩阵,但是是可以并行计算的,效率比较高


LeetCode107:二叉树的层次遍历Ⅱ

题目描述: 方法1:普通的层次遍历,然后反转下结果 class Solution { public: void order(vector<vector<int>>& result, TreeNode* root, int length){ if(!root) return;


LeetCode226:翻转二叉树

题目描述: 方法1:前序遍历,只不过把读取数字改为交换左右孩子(递归) class Solution { public: void reverse(TreeNode* root){ if(!root) return; swap(root->left,root-