自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 Leetcode二分查找(5)

Newton 迭代公式:y_{k+1} = (y_k + x / y_k) / 2。但需要 O(√x) 次循环,无法满足 O(log x) 要求,仅作数学性质展示或当 x 很小(例如 < 10^6)且代码极简的情况。满足题目 O(log x) 要求的:1(二分)、2(牛顿平均情况下很快,迭代次数 ~ O(log log x) 数值方法)、3(固定 ~ 16 或 32 次迭代)。该方法时间 O(log x),常数小,完全整数运算,适合对位运算有要求或在无除法环境下(可用加法和移位判断平方)略作改造。

2025-09-02 16:49:16 961

原创 Leetcode二分查找(4)

循环条件 l <= r。中点 mid = l + (r - l)/2。在极端性能场景可用 mid = (l + r) >>> 1(无符号右移)替代 l + (r - l)/2;在 Java 中 int 溢出时 l + r 可能为负导致结果错误,因此推荐使用 l + (r - l)/2 或 (l + r) >>> 1(当 l,r >=0 时安全)。题目回顾:给定升序(非递减)整数数组 nums 与 target,若存在返回其索引,否则返回按顺序插入后仍保持有序的索引(即第一个 >= target 的位置)。

2025-09-02 16:37:22 807

原创 Leetcode二分查找(3)

利用二分查找有序数组中“第一个 >= target 的位置”(lower_bound)与“第一个 > target 的位置”(upper_bound)。如果数组中不存在目标值 target,返回 [-1, -1]。满足该要求的为:方法1、方法2、方法3。综上,使用双二分模板能最直接、稳定地满足题目对 O(log n) 的要求,是最具可维护性的实现方式。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。

2025-09-02 16:31:13 940

原创 Leetcode二分查找(2)

在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 向左旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …例如, [0,1,2,4,5,6,7] 下标 3 上向左旋转后可能变为 [4,5,6,7,0,1,2]。时间 O(log n),空间 O(1)。先通过二分找到最小元素(旋转点 pivot),数组被分为两个有序区间 [0, pivot-1] 与 [pivot, n-1]。

2025-09-02 16:23:11 893

原创 Leetcode二分查找(1)

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。算法的时间复杂度应该为 O(log (m+n))。解题思路总览。

2025-09-02 15:59:17 1107

原创 Leetcode 深度优先搜索 (16)

给你一个二叉树的根节点 root ,请你将此二叉树上下翻转,并返回新的根节点。上面的步骤逐层进行。题目数据保证每个右节点都有一个同级节点(即共享同一父节点的左节点)且不存在子节点。

2025-09-02 14:48:14 998

原创 Don’t Listen To Me: Understanding and Exploring Jailbreak Prompts of Large Language Models

生成式人工智能的最新进展使大型语言模型(LLMs)变得无处不在。凭借其非凡的理解和生成类人文本的能力,这些模型正日益融入我们的社会。与此同时,人们也担忧这项强大技术的潜在滥用,促使服务提供商采取了防御措施。为了克服这些保护措施,“越狱提示”(jailbreak prompts)最近成为规避安全限制并诱导生成原本设计被禁止的有害内容的最有效机制之一。由于LLMs的快速发展及其通过自然语言的便捷访问,越狱提示的前沿阵地主要在在线论坛和业余爱好者中。

2025-09-02 13:44:33 1228

原创 Leetcode 深度优先搜索 (15)

单腿返回 + 两腿只在节点内部聚合” 确保路径不会重复分叉。截断负增益保证不会让路径和减少,相当于取 max(0, downGain)。全局答案更新独立于返回值,因此可以不经过根。所有方法都只在节点常数时间处理(除暴力)。

2025-08-28 21:16:15 1105

原创 Computation and Data Efficient Backdoor Attacks

深度神经网络(DNN)模型的后门攻击已被广泛研究。针对不同领域和范式(如图像、点云、自然语言处理、迁移学习等)已提出了多种攻击技术。将后门嵌入DNN模型最常用的方法是对训练数据进行投毒。这些方法通常从良性训练集中随机选择样本进行投毒,而没有考虑每个样本对后门有效性的不同贡献,使得攻击效果不够理想。近期工作[40]提出使用遗忘分数(forgetting score)衡量每个中毒样本的重要性,进而过滤冗余数据以实现高效的后门训练。然而,该方法基于经验设计且缺乏理论证明。

2025-08-28 19:50:46 738

原创 Label Poisoning is All You Need

在后门攻击中,攻击者通过向模型的训练数据中注入污染数据,从而使其对带有特定攻击者定义触发器的图像产生受控预测。传统污染训练样本需要同时修改图像(添加触发器)和标签。因此,在干净图像上训练的模型曾被认为对这种攻击是安全的。然而,在某些常见的机器学习场景中,训练标签可能由潜在恶意的第三方提供(例如众包标注和知识蒸馏)。基于此,我们研究一个根本性问题:仅通过污染标签能否成功实施后门攻击?

2025-08-28 17:26:09 980

原创 Leetcode 深度优先搜索 (14)

给定球的起始位置,目的地和迷宫,找出让球以最短距离掉进洞里的路径。距离的定义是球从起始位置(不包括)到目的地(包括)经过的空地个数。通过’u’, ‘d’, ‘l’ 和 'r’输出球的移动方向。由空地和墙组成的迷宫中有一个球。球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动。当球停下时,可以选择下一个方向(必须与上一个选择的方向不同)。迷宫由一个0和1的二维数组表示。两条路径都具有最短距离6, 但’l’ < ‘u’,故第一条路径字典序更小。有两条让球进洞的最短路径。

2025-08-27 13:51:33 771

原创 Leetcode 深度优先搜索 (13)

的迷宫(maze),球的起始位置 (start = [startrow, startcol]) 和目的地 (destination = [destinationrow, destinationcol]),返回球在目的地 (destination) 停止的最短距离。状态定义: 仅把球能够“停下”的格子作为节点(即当前位置四周至少有一个方向继续滚动,但当前停下是因为上一次滚动撞墙)。一条最短路径 : left -> down -> left -> down -> right -> down -> right。

2025-08-21 17:05:19 293

原创 Leetcode 深度优先搜索 (12)

给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null。展开后的单链表应该与二叉树。返回尾结点:优先 rightTail,其次 leftTail,否则为 root 自身。时间 O(n^2) 最坏(退化链时 tail 查找),空间 O(h)(递归栈)。复杂度:时间 O(n),空间 O(h)(递归栈)。

2025-08-21 16:55:23 744

原创 Leetcode 深度优先搜索 (11)

每次将当前节点、当前路径和、当前路径列表一起压入栈中。遍历时弹出栈顶元素,判断是否为叶子节点且路径和等于目标和,如果是则将路径加入结果集。广度优先搜索(BFS)用于本题时,通常用队列来存储节点、当前路径和路径和。每次从队列取出一个节点,判断是否为叶子节点且路径和等于目标和,如果是则将路径加入结果集。否则,将其左右子节点和对应的路径、路径和加入队列。给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

2025-08-20 20:01:29 350

原创 Leetcode 深度优先搜索 (10)

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。如果存在,返回 true;否则,返回 false。在递归遍历二叉树的过程中,如果节点值均为正数,当当前路径和已经大于目标和 targetSum 时,可以立即返回,不再继续遍历该路径的子节点,这样可以减少不必要的递归调用,提高效率。若节点值有负数,则不能进行此类剪枝。等于目标和的根节点到叶节点路径如上图所示。

2025-08-20 19:39:08 351

原创 Leetcode 深度优先搜索 (9)

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。

2025-08-20 18:52:17 267

原创 Leetcode 深度优先搜索 (8)

给定一个二叉树,判断它是否是 平衡二叉树。

2025-08-20 18:38:55 380

原创 Leetcode 深度优先搜索 (7)

给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。并行计算二叉树最大深度可以利用多线程分别计算左右子树的最大深度,然后在主线程中合并结果。

2025-08-19 20:05:38 444

原创 Leetcode 深度优先搜索 (6)

轴对称的定义:一棵二叉树是轴对称的,当且仅当它的左子树和右子树是镜像对称的。也就是说,左子树的结构和节点值与右子树完全对称。也可以用队列或栈进行迭代实现,原理类似,都是成对比较左右子树的对应节点。给你一个二叉树的根节点 root , 检查它是否轴对称。

2025-08-19 17:52:27 432

原创 BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

基于深度学习的技术在各种识别和分类任务中已取得了最先进的性能。本文指出,外包训练会引入新的安全风险:攻击者可以创建一个恶意训练的网络(即带有后门的神经网络,称为 BadNet),该网络在用户的训练和验证样本上表现优异,但在攻击者选择的特定输入上却会表现异常。接着,我们在更现实的场景中展示了后门的应用:构建了一个美国街道标志分类器,当在停车标志上贴上特定的贴纸时,它会将其识别为限速标志。我们进一步展示,即使该网络后来被重新训练用于其他任务,这一后门仍然可能存在,并在触发后门时平均导致准确率下降 25%。

2025-08-18 16:56:17 1051

原创 Leetcode 深度优先搜索 (5)

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。当前节点相同 = 节点值相等 && 左子树相同 && 右子树相同。

2025-08-18 16:14:32 569

原创 Leetcode 深度优先搜索 (4)

给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。在一个二叉搜索树中,恰好有两个节点的值被错误交换了,需要找到这两个节点并将它们的值交换回来,恢复正确的BST。例如:[1, 3, 2, 4, 5] → 节点3和2被交换。例如:[1, 5, 3, 4, 2] → 节点5和2被交换。继续遍历:如果再次发现逆序,记录第二个错误节点(当前节点)如果只有一次逆序:第二个错误节点就是第一次逆序中的当前节点。第二个错误节点:第二个逆序对中较小的数(2)第一个错误节点:逆序对中较大的数(3)

2025-08-18 15:08:46 439

原创 深度学习论文解析

摘要—人工智能(AI)在很大程度上依赖于深度学习,这项技术在现实生活中的AI应用中日益普及,甚至被用于安全关键和高风险领域。然而,近期研究发现,深度学习模型可能被植入“特洛伊木马”进行操控。为了规避深度学习的高计算需求,许多实际解决方案选择将模型训练或数据标注外包给第三方,但这也进一步增加了模型遭受特洛伊攻击的风险。鉴于该问题在深度学习领域的重要性,近年来相关文献中涌现出大量研究成果。本文对深度学习中的特洛伊攻击技术及其防御方法进行了全面综述。

2025-08-18 14:36:27 1212

原创 Leetcode 深度优先搜索 (3)

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。true。

2025-08-18 11:22:37 513

原创 Leetcode 深度优先搜索 (2)

中序遍历是二叉树遍历的基本方式之一,遍历顺序为:左子树 → 根节点 → 右子树。给定一个二叉树的根节点 root ,返回 它的 中序 遍历。递归栈深度,h为树高。

2025-08-17 09:30:25 435

原创 Leetcode 深度优先搜索 (1)

这种优化的价值在于它是一种预处理优化,通过简单的字符频率分析就能显著减少搜索空间,而不需要改变核心的搜索算法逻辑。在单词搜索问题中,我们需要遍历网格中的每个位置作为潜在的起点。传统方法是固定从单词的第一个字符开始搜索,但我们可以选择从单词的最后一个字符开始,反向搜索整个单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。总的来说,反向搜索优化是一种巧妙的策略,它利用了字符分布的不均匀性来减少无效的搜索尝试,在保持算法正确性的同时显著提升了性能。

2025-08-17 08:26:06 801

原创 Leetcode 最小生成树系列(4)

这是一个关于带权图中条件路径查询的问题,核心要求是:判断在给定权重限制下,两个节点是否连通。// 返回 true。存在一条从 2 到 3 ,距离为 1 的边,// 返回 true。存在一条从 2 到 0 的路径,使得每条边的。个节点的无向图以边的列表 edgeList 的形式定义,其中。注意,同一对节点间可能有多条边,且该图可能不是连通的。// 距离 < 3:从 2 到 3 到 0 行进即可。的路径,且路径中每条边的距离都严格小于。// 这条边的距离小于 2。// 严格小于 3 的路径。

2025-08-17 02:16:09 992

原创 Leetcode 最小生成树系列(3)

注意到第 0 条边和第 1 条边出现在了所有最小生成树中,所以它们是关键边,我们将这两个下标作为输出的第一个列表。边 2,3,4 和 5 是所有 MST 的剩余边,所以它们是伪关键边。如果从图中删去某条边,会导致最小生成树的权值和增加,那么我们就说它是一条关键边。伪关键边则是可能会出现在某些最小生成树中但不会出现在所有最小生成树中的边。最小生成树 (MST) 是给定图中边的一个子集,它连接了所有节点且没有环,而且这些边的权值和最小。请注意,你可以分别以任意顺序返回关键边的下标和伪关键边的下标。

2025-08-15 15:42:27 754

原创 Leetcode 最小生成树系列(2)

最好的策略是在第一个房子里建造水井(成本为 1),然后将其他房子铺设管道连起来(成本为 2),所以总成本为 3。题目的核心技巧是引入虚拟节点,把“打井”也看作是建一条特殊的边:增加一个虚拟节点 0,表示“水源”。MST 会自动帮我们决定:哪些房子直接打井(连接到 0 节点的边被选中)。,我们有两种可选的供水方案:一种是直接在房子内建造水井,成本为。我们希望通过建造水井和铺设管道来为所有房子供水。给出了在房子间铺设管道的成本,其中每个。节点的图上,求一棵最小生成树(MST)。,代表直接在该房子打井。

2025-08-15 15:10:53 1207

原创 Leetcode 最小生成树系列(1)

从全局上看,这个题的核心就是——用最小的代价让所有节点(城市)互相连通。并查集判连通 每次加入一条边,只有当它连接了两个尚不在同一连通分量的城市时才真正采用。重复直到形成 n−1 条边 此时正好连接了全部 n 个城市且无环,成本最小。选出任意 2 条边都可以连接所有城市,我们从中选取成本最小的 2 条。,每对城市之间至少有一条路径。该 最小成本 应该是所用全部连接成本的总和。按边权从小到大排序 最便宜的连接优先考虑。想象一下你是个城市基建规划者,地图上有。即使连通所有的边,也无法连接所有城市。

2025-08-15 11:31:49 1967

原创 AI大模型--知识图谱

最近在研究大模型中的知识图谱,感觉里面的概念比较凌乱。于是抽空把相关概念以及关键技术做了总结。

2025-08-13 13:19:13 1225

原创 LangChain框架及其应用场景介绍

LangChain 是一个用于构建基于大型语言模型(LLM)应用程序的框架,它提供了一套工具和接口,帮助开发者更高效地开发、组合和部署 LLM 驱动的应用。它的核心目标是简化 LLM 与其他工具、数据源和业务流程的集成,使开发者能够构建更灵活、功能更丰富的 AI 应用。数据集成(RAG)LangChain 可以连接外部数据源(如 PDF、网页、数据库),通过检索相关信息增强 LLM 的生成能力,减少幻觉问题。多步骤工作流。

2025-08-11 12:25:04 2675

原创 AI大模型--提示词工程

是指你希望模型完成的具体工作类型或行为。例如:写一篇文章、总结一段文本、生成一段代码、回答一个问题、分析一组数据等。

2025-08-10 16:05:34 728

原创 基于DDPG策略的Atari中的quadrapong_v4

quadrapong_v4 是 Atari 游戏中的一个多智能体版本的乒乓球游戏,灵感来自经典的 Pong,但扩展为 四人对战。每位玩家控制一个挡板,负责防守自己所在边界的得分区域。目标是将球击向对方的得分区域,从而为自己的团队赢得分数。

2025-08-10 13:40:25 309

原创 基于Actor-Critic策略的Atari中的pong_v3

Pong_v3 是基于经典 Atari 游戏《Pong》的多智能体强化学习环境。它模拟了两个玩家在屏幕两侧控制挡板,试图将球击回并得分的场景。这是一个经典的双人对抗游戏,强调反应速度与击球角度。每个智能体的目标是将球击回并让球越过对方的挡板,从而获得分数。

2025-08-10 10:50:48 362

原创 基于Policy Gradient策略的Atari中的boxing_v2

Boxing_v2 是基于 Atari 2600 游戏《Boxing》的多智能体强化学习环境,由 PettingZoo 提供。两个拳击手在一个封闭的擂台中进行为期两分钟的比赛(约 1200 步),目标是尽可能多地击中对方以获得分数。每个智能体的目标是通过移动和出拳击中对手,从而获得更高的分数。比赛结束时分数更高者获胜,或者通过击倒(KO)直接结束比赛。

2025-08-10 08:40:25 658

原创 基于深度强化学习的Atari中的SpaceInvaders

space_invaders_v2 是基于 Atari 经典街机游戏《Space Invaders》的多智能体版本。它将原始单人射击游戏扩展为双人模式,嵌入合作与竞争机制,适用于多智能体强化学习研究。

2025-08-09 11:40:50 875

原创 基于深度强化学习的Atari中的AirRaid-v5

AirRaid-v5 是 Gymnasium 中基于 Atari 游戏《Air Raid》的强化学习环境,属于经典的 2D 飞行射击类游戏。该环境通过 Arcade Learning Environment (ALE) 模拟器实现,适用于训练智能体进行目标识别、动作规划和反应控制。

2025-08-08 10:40:38 508

原创 基于深度强化学习的Atari中的LunarLander

LunarLander-v3 是 Gymnasium 框架中的一个经典强化学习环境,模拟了一个火箭在月球表面安全着陆的任务。它属于 Box2D 物理模拟环境,任务目标是控制一个着陆器在重力作用下平稳降落在指定的着陆垫上。

2025-08-08 09:52:53 438

原创 基于深度强化学习的俄罗斯方块模拟训练器

gym-tetris 是一个将经典游戏《俄罗斯方块》(Tetris)集成到 OpenAI Gym 强化学习框架中的环境。它允许研究人员和开发者使用强化学习算法训练智能体来玩 Tetris,主要基于 NES(任天堂娱乐系统)版本的游戏。

2025-08-07 17:04:13 347

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除