算法训练第六十一天

剑指 Offer 35. 复杂链表的复制 - 力扣(LeetCode)

总结:今日这道题自己使用暴力方法结果是超时了,看完题解后觉得实在是太妙了!!!利用哈希表与递归(答案中说是回溯,个人理解是递归),利用哈希表记录已经创建了的节点,如果没有找到就直接新创建节点,找到了就直接返回哈希表记录的值,而哈希表的键值就是原来链表中的节点,哈希表中的键值和值值非常对应,就是两个不同链表中的同一节点。

代码:

cpp 复制代码
class Solution {
public:
    unordered_map<Node*,Node*> cachedNode;
    Node* copyRandomList(Node* head) {
        if(head == nullptr)
        return head;
        if(!cachedNode.count(head))
        {
            Node* headNew = new Node(head->val);
            cachedNode[head] = headNew;
            headNew->next = copyRandomList(head->next);
            headNew->random = copyRandomList(head->random);
        }
        return cachedNode[head];
    }
};
//太妙了!!!
//记得反复观看
相关推荐
深圳市快瞳科技有限公司44 分钟前
野外鸟类AI识别落地实录:输入适配、结构化输出、去重聚合与置信度分流的工程实践
算法·计算机视觉·鸟类识别·鸟类ai识别·野外鸟类观测·林业调查
专注仿真2 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
小豆庄2 小时前
视频遮罩追踪退场后ID撞号的排查—多目标场景下的失效
opencv·算法·bug·视频·python3.11
Tisfy3 小时前
LeetCode 3882.网格图中最小异或路径:动态规划
算法·leetcode·动态规划
D e re k ZH4 小时前
P5025 [SNOI2017] 炸弹
c++·算法
A boy CDEF girl4 小时前
算法题专栏:优选算法
数据结构·算法·leetcode
没落之王4 小时前
三易五行看宋朝的三界确立
大数据·人工智能·算法
坤坤子吖4 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
Js.Tx6 小时前
【具体数学 Concrete Mathematics】2.1.5 一般性的方法
算法·具体数学
秋天的怀念_David7 小时前
算法一千零一夜 · 作品相关:版权与致谢声明
程序人生·算法·学习方法