【数据结构和算法】面试必刷之随机链表复制:这三步让你彻底吃透 random 指针

【数据结构和算法】面试必刷之随机链表复制:这三步让你彻底吃透 random 指针
在这里插入图片描述
🔥小龙报:个人主页
🎬作者简介:C++研发,嵌入式,机器人等方向学习者
❄️个人专栏:《C语言》《【初阶】数据结构与算法》
永远相信美好的事情即将发生
在这里插入图片描述

文章目录


前言

随机链表的复制是数据结构中的经典难题,核心难点在于复制节点的random指针——其指向的节点可能尚未创建,也可能指向链表中的任意节点。本文采用“原地拷贝+拆分”的最优思路,分三步拆解解题逻辑,结合代码实现与原理分析,清晰讲解如何高效解决该问题,帮助读者吃透random指针的处理技巧,掌握链表操作的核心思维。

一、随即链表的复制

1.1 题目

链接:随机链表的复制

在这里插入图片描述


在这里插入图片描述

1.2 算法原理

第一步:依次拷贝每个节点放在原节点后面

在这里插入图片描述


第二步:处理random指针指向 — 新链表 == (旧链表)random->next

第三步:把拷贝节点依次取下来尾插成新链表

1.3 代码

*** Definition for a Node.* struct Node {* int val;* struct Node *next;* struct Node *random;*};*/ typedef struct Node* Node; struct Node*copyRandomList(struct Node* head){//拷贝每个节点放在原节点后面 Node cur = head;while(cur){ Node copy =(Node)malloc(sizeof(struct Node)); copy->val = cur->val; copy->next = cur->next; cur->next = copy; cur = copy->next;}//处理拷贝链表的random cur = head;while(cur){ Node copy = cur->next;if(cur->random ==NULL) copy->random =NULL;else copy->random = cur->random->next; cur = copy->next;}//把拷贝链表从原链表摘下来成为新链表 cur = head; Node copyhead =NULL; Node copytail =NULL;while(cur){ Node copy = cur->next; Node next = copy->next;//没有节点 + 有一个节点 if(copytail ==NULL) copyhead = copytail = copy;else{ copytail->next = copy; copytail = copytail->next;} cur = next;}return copyhead;}

总结与每日励志

✨本文详细讲解了随机链表复制的完整解法,核心是通过“原地拷贝节点、关联random指针、拆分链表”三步,在O(n)时间复杂度和O(1)空间复杂度内完成复制,避开了random指针带来的难点。每一道算法题都是思维的锤炼,每一次代码调试都是能力的提升。愿你在技术学习的道路上,保持严谨与耐心,不畏惧难题,不敷衍细节,永远相信美好的事情即将发生,用坚持与积累,解锁更多算法奥秘,奔赴属于自己的成长之路

在这里插入图片描述

Read more

类Manus开源AI Agent系统:大模型智能助手实践,安全隔离+多工具集成

类Manus开源AI Agent系统:大模型智能助手实践,安全隔离+多工具集成

类Manus开源AI Agent系统采用Plan-Act架构,在Docker沙盒中安全执行多工具操作,支持终端、浏览器、文件和网络搜索等功能。该系统适用于企业办公自动化、科研教育和开发者效率提升等场景,通过开源降低AI使用门槛,提供安全可控的自动化解决方案,推动AI从辅助工具向可信合作伙伴演进,为各行业提供高效自动化服务。 类Manus开源!一个强大的 AI Agent 系统 源代码 https://www.gitcc.com/pku-robot/pku-zhitong 通用的 AI Agent 系统,采用 Plan-Act 架构,能够理解用户意图、制定执行计划,并在隔离的 Docker 沙盒环境中安全地执行各种工具和操作。系统支持终端命令、浏览器自动化、文件操作、网络搜索等多种工具,并提供了实时查看和接管功能。 架构 🎯 核心优势 * 🚀 开箱即用:最小只需要一个 LLM 服务即可完成部署 * 🔒 安全隔离:每个任务运行在独立的 Docker

By Ne0inhk

使用LLaMA-Factory对GLM-4-9B-Chat进行LoRA微调

使用LLaMA-Factory对GLM-4-9B-Chat进行LoRA微调 在大模型应用日益普及的今天,如何快速、低成本地定制一个符合特定场景需求的语言模型,已经成为开发者和企业关注的核心问题。直接全参数微调动辄数十GB显存消耗,对大多数团队而言并不现实。而像 LoRA(Low-Rank Adaptation) 这样的高效微调技术,配合如 LLaMA-Factory 这类开箱即用的框架,正让“平民化”大模型定制成为可能。 本文将以 GLM-4-9B-Chat 为例,带你从零开始完成一次完整的 LoRA 微调流程——从环境配置、数据清洗到训练部署,最终得到一个可独立运行的专属模型。整个过程无需深入理解底层原理,也能在单卡 A10/A100 上顺利完成。 环境准备:搭建可编辑的开发环境 首先确保你的系统已安装 Python ≥ 3.10 和支持 CUDA 的 PyTorch 版本(推荐 torch==2.1.0+cu118 或更高)

By Ne0inhk
开源强化学习框架RLinf:面向具身和智能体的强化学习基础设施

开源强化学习框架RLinf:面向具身和智能体的强化学习基础设施

清华大学等发布RLinf:面向具身和智能体的强化学习基础设施 RLinf 是一个灵活且可扩展的开源强化学习基础设施,是以清华大学、北京中关村学院、无问芯穹为核心,还联合了北京大学、加州大学伯克利分校等机构共同参与设计并开源。这是一个面向具身智能的“渲训推一体化”大规模强化学习框架,专门为具身人工智能和智能体人工智能而设计。RLinf 中的“inf”代表“基础设施” Infrastructure,突显了它作为下一代训练强大骨干的作用。它也代表“无限” Infinite,象征着该系统支持开放式学习、持续泛化以及智能发展中的无限可能。 RLinf具身智能AI强化学习训练平台框架 参考链接: https://github.com/RLinf/RLinf Franka真机强化学习 本文档给出在 RLinf 框架内启动在 Franka 机械臂真机环境中训练任务的完整指南, 重点介绍如何从零开始训练基于 ResNet 的 CNN 策略以完成机器人操作任务。 主要目标是让模型具备以下能力: 1. 视觉理解:处理来自机器人相机的 RGB 图像。 2.

By Ne0inhk

腾讯Hunyuan-MT-7B翻译模型完全指南:2025年开源AI翻译的新标杆

🎯 核心要点 (TL;DR) * 突破性成就:腾讯混元MT-7B在WMT25全球翻译竞赛中获得30/31项第一名 * 双模型架构:Hunyuan-MT-7B基础翻译模型 + Hunyuan-MT-Chimera-7B集成优化模型 * 广泛语言支持:支持33种语言互译,包括5种中国少数民族语言 * 完全开源:2025年9月1日正式开源,提供多种量化版本 * 实用部署:支持多种推理框架,提供详细的部署和使用指南 目录 1. 什么是腾讯混元翻译模型 2. 核心技术特点与优势 3. 双模型架构详解 4. 支持语言与使用方法 5. 性能表现与竞赛成绩 6. 部署与集成指南 7. 实际应用场景 8. 常见问题解答 什么是腾讯混元翻译模型 {#what-is-hunyuan-mt} 腾讯混元翻译模型(Hunyuan-MT)是腾讯在2025年9月1日开源的专业翻译AI模型,由两个核心组件构成: * Hunyuan-MT-7B:7B参数的基础翻译模型,专注于将源语言文本准确翻译为目标语言 * Hunyuan-MT-Chimera-7B:业界首个开源翻译集成

By Ne0inhk