Reverse Linked List II

AMD MI50 Linux ROCm 6.4 手动编译与大模型推理实战 GPU加速计算是现代AI推理的核心基础,其性能依赖于硬件架构、驱动栈与运行时环境的深度协同。ROCm作为AMD开源GPU计算平台,采用‘自下而上’的Linux生态集成路径,强调对上游内核、编译器与固件的强耦合。MI50基于Vega 20(gfx900)架构,虽具备32GB HBM2高带宽显存与14.7 TFLOPS FP16算力,但因ROCm官方支持策略转向CDNA架构,自6.5版本起被移出支持列表,仅ROCm 6.4仍提供实验性兼容——这使其成为Linux下部署私有大模型的关键‘最后一班船’。本文围绕MI 阅读详情

题目:Reverse a linked list from position m to n. Do it in-place and in one-pass.

先复习一下普通的翻转链表的头插法:

3个变量,head2,新头;cur,遍历变量,next保存需要遍历的下一个结点。4句话。

next= cur->next;
cur->next=head2;
head2=cur;
cur=next;

Reverse Linked List || 的基本框架也是头插法,因为翻转的是链表的一部分,还要考虑和整个链表的连接问题。

1)首先考虑父链表和子链表头的对接问题:

因为头插法里head2变量始终存放翻转后链表头,只需把m-1节点指针域用作head2变量就可以了,对接始终保持。

2)子链表尾和父链表的的对接问题:

最后的状态应该是m节点作为子链表尾与父链表对接,所以可以考虑把m节点的指针域用作next变量。所以这里的头插法从第二个节点(m+1处)开始。

3)总结:算法的主框架就是头插法reverse 链表,只是要用m-1结点指针域作为head2变量, m结点指针域作为next变量, cur指针从m+1节点开始到n节点。如果m=1怎么办?这时候不存在m-1节点。解决办法:dummy节点。

ListNode *reverseBetween(ListNode *head, int m, int n) {
        ListNode dummy(-1), *prevM = &dummy;
        dummy.next = head;
        for (int i = 0; i < m - 1 && prevM; ++i, prevM = prevM->next) ;
        if (!prevM || !prevM->next || !prevM->next->next) return head;
        auto &head2 = prevM->next, mNode = prevM->next;
        auto &next = mNode->next, cur = mNode->next;
        for (int i = m + 1; i <= n && cur; ++i) {
            next = cur->next;
            cur->next = head2;
            head2 = cur;
            cur = next;
        }
        return dummy.next;
    }

一个更清晰的版本:就是把[m, n]节点一个个插入新链表。

ListNode *reverseBetween(ListNode *head, int m, int n) {
    ListNode dummy(-1), *prevM = &dummy;
    dummy.next = head;
    for (int i = 0; i < m - 1 && prevM->next; ++i, prevM = prevM->next) ;
    if (!prevM->next) return head;
    auto &head2 = prevM->next, cur = prevM->next, start = prevM->next;
    for (int i = m; i <= n && cur; ++i) {
        auto next = cur->next;
        cur->next = head2;
        head2 = cur;
        cur = next;
    }
    start->next = cur;
    return dummy.next;
}
还是递归逻辑最清晰

ListNode *reverseBetween(ListNode *head, int m, int n) {
	if (head == nullptr || m >= n) return head;
    if (m > 1) {
        head->next = reverseBetween(head->next, m - 1, n - 1);
        return head;
    }
    ListNode *head2, *p = head;
    for (; n > 0 && p; --n) {
        auto next = p->next;
        p->next = head2;
        head2 = p;
        p = next;
    }
    head->next = p;
    return head2;
}


OpenCV实战系列——图像线条提取 基于内容的图像分析,需要从构成图像的像素集合中提取有意义的特征。轮廓、线条、区域等是基本的图像基元,可用于描述图像中包含的元素。本节将介绍如何提取重要的图像线条特征。 阅读详情

相关推荐

保姆级教程:用CANoe的LIN Slave Conformance Tester搞定一致性测试(附LDF配置避坑点)

本文详细介绍了如何使用CANoe的LIN Slave Conformance Tester进行汽车电子LIN从节点一致性测试,包括测试环境搭建、LDF文件配置、多通道测试技巧及常见问题解决方案。通过实战案例和高级配置技巧,帮助工程师高效完成测试任务,确保LIN总线通信的可靠性。

weixin_30385925的博客 527

leetcode 92. Reverse Linked List II

思路很简答,但一次性通过还是有点难度的。是第206题的进阶版。

weixin_41554427的博客 743

西门子1200之PID用法与控制

西门子PID加热试验

gyxgyx789的博客 6259

LeetCode 92. Reverse Linked List II(链表)

题目来源:https://leetcode.com/problems/reverse-linked-list-ii/ 问题描述 92.Reverse Linked List II Medium Reverse a linked list from positionmton. Do it in one-pass. Note:1 ≤m≤n≤ length of list. ...

da_kao_la的博客 197

AI应用架构师:引领半导体良率AI预测的变革浪潮

在半导体行业这个技术密集、资本密集且竞争异常激烈的领域,良率是决定企业盈利能力的关键指标。每提升1%的良率可能意味着数亿美元的利润增长。然而,随着制程节点不断缩小至3nm、2nm甚至更先进水平,传统的良率管理方法已难以应对日益复杂的制造流程和指数级增长的数据量。本文将深入探讨AI应用架构师如何成为这场变革的核心驱动力,通过设计和实施先进的AI预测系统,将半导体良率预测从传统的"事后分析"转变为"事前预测"和"实时优化"。

AI大模型应用之禅 403

YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块

本文记录的是基于FasterNet的YOLOv11轻量化改进方法研究。FasterNet的网络结构借鉴 CNN 的设计理念,通过提出的PConv减少推理时的计算和内存成本,同时减少通道数并增加部分比例,降低延迟,并通过后续的PWConv来弥补特征信息可能缺失的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的和六种模型,以满足不同的需求。

Limiiiing的博客 2033

Reverse Linked List II Java

/* Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1->2->3->4->5->NULL, m = 2 and n = 4, return 1->4->3->2->5->NULL. Note: Given m, n satisfy the foll

喜欢反对 737

信息安全管理与评估赛题解析-单机取证(含环境)

链接:https://pan.baidu.com/s/1OMzIq884dW2vAiUp0k2Ppg。链接:https://pan.baidu.com/s/1i5daMqhD53wYeQ6hYzRK6Q。链接:https://pan.baidu.com/s/1QFAjdQZK4sJ-gGRP42XPKA。链接:https://pan.baidu.com/s/1BSXvqN2ZGCQXewgFULoeyQ。链接:https://pan.baidu.com/s/1g9zu5ngBz_KMjW1eBMkJAw。

Brucye 1834

[LeetCode] Reverse Linked List II

Reverse a linked list from position m to n. Do it in-place and in one-pass.For example: Given 1->2->3->4->5->NULL, m = 2 and n = 4,return 1->4->3->2->5->NULL.Note: Given m, n satisfy the following co

楚兴 1437

基于深度学习的商品标签识别系统:UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集

基于YOLO系列模型的商品标签识别系统能够有效解决商品信息提取的自动化问题。通过合理的数据集准备、模型训练和UI设计,我们可以实现一个功能强大的商品标签识别系统。希望本文提供的内容能够为大家提供有价值的帮助。

YOLO 475

Newton & Nvidia 开源 GPU 加速机器人仿真器入门教程(一)

Newton 是一个 GPU 加速、可扩展和可微分的物理仿真引擎,专为机器人、研究和高级仿真工作流而设计。Newton 基于 NVIDIA Warp 并集成了 MuJoCo Warp,为用户和开发人员提供了高性能仿真、现代 Python API 和灵活的架构。

机器人控制与仿真应用 1482

92 Reverse Linked List II

逆转部分LinkList,和逆转整个LinkList的题目是一样的,沿用之前的思路就可以,新建一个dummyNode,把要逆转的部分通过头插法连接起来。 这道题稍微有点麻烦,就是分步骤: 1,找到逆转部分的之前一个node,作为第一个attach point 2,确定逆转部分的最后一个node,作为第二个attach point 3,完成扭转之后,attach两次既可! 一个技巧,因为m

laserljy123的博客 322

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

92. Reverse Linked List II

题目 Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Example: Input: 1->2->3->4->5->NULL, m = 2, n = 4 Output: 1->4->3->2->5-...

努力学习的姜饼 210

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[LeetCode] Reverse Linked List II Solution

Reverse a linked list from position m to n, Do it in-place and in one-pass. For example:  Given 1->2->3->4->5->NULL, m = 2 and n = 4 return 1->4->3->2->5->NULL. Note: Given m, n satisfy the follo

程序人生 721

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

#36 Reverse Linked List II

题目描述: Reverse a linked list from position m to n.  Notice Given m, n satisfy the following condition: 1 ≤ m ≤ n ≤ length of list. Have you met this question in a real interview

易水居 257
上一篇: Plus One
下一篇: Partition List
binling
博客等级 码龄25年 21粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值