【每天40分钟,我们一起用50天刷完 (剑指Offer)】第十二天 12/50

news2024/11/19 1:47:08

专注 效率 记忆
预习 笔记 复习 做题

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)
 
文章字体风格:
红色文字表示:重难点★✔
蓝色文字表示:思路以及想法★✔
 
如果大家觉得有帮助的话,感谢大家帮忙
点赞!收藏!转发!

本博客带大家一起学习,我们不图快,只求稳扎稳打。
由于我高三是在家自学的,经验教训告诉我,学习一定要长期积累,并且复习,所以我推出此系列。
只求每天坚持40分钟,一周学5天,复习2天
也就是一周学10道题
50天后我们就可以学完76道题,相信50天后,我们一定可以有扎实的代码基础!我们每天就40分钟,和我一起坚持下去吧!
qq群:866984458

本题出自 acwing网站
这个系列是免费的
打卡即刻退回费用。

第十二天【剑指Offer例题代码 系列】

    • 23. 反转链表
        • 方法一: 迭代
        • 方法二:递归
    • 24. 合并两个排序的链表

23. 反转链表

原题链接

在这里插入图片描述

方法一: 迭代

1 -> 2 -> 3 -> 4
i j

1 <- 2 -> 3 -> 4
i j
就像这样迭代

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode *prev = nullptr;
        ListNode *cur = head;
        while (cur)
        {
            ListNode *next = cur->next;
            cur->next = prev;
            prev = cur, cur = next;
        }
        return prev;
    }
};

方法二:递归

1->2->3->4

因为用递归,翻转顺序指定是
从后往前

但是注意的是,返回的值应该是头节点,也就是4的值

那么如何递归?

  1. 接收返回值
  2. 递归当前两个节点
  3. 返回返回值
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if (!head || !head->next) return head;
        ListNode *tail = reverseList(head->next);
        head->next->next = head;
        head->next = nullptr;
        return tail;
    }
};

24. 合并两个排序的链表

原题链接
在这里插入图片描述
定义一个头节点,然后定义一个链表cur指向辅助

主要是完成

直接在两个表上的链路连接

比如 1->3 2->4合并

因为1小于2
那么直接让1->2(前提 l1的角标已经移到3)
如图
在这里插入图片描述

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* merge(ListNode* l1, ListNode* l2) {
        ListNode *dummy = new ListNode(0);
        ListNode *cur = dummy;
        while (l1 != NULL && l2 != NULL) {
            if (l1 -> val < l2 -> val) {
                cur -> next = l1;
                l1 = l1 -> next;
            }
            else {
                cur -> next = l2;
                l2 = l2 -> next;
            }
            cur = cur -> next;
        }
        cur -> next = (l1 != NULL ? l1 : l2);
        return dummy -> next;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务运营|MS 论文解读:MIR 增强的Benders 分解用于具有到达率不确定性的多类服务系统人员调度问题

推文作者&#xff1a;王畅&#xff0c;蔡君洋&#xff0c;Guo 编者按 劳动力调度是服务系统运营的一个重要应用场景&#xff0c;当系统中的服务集和客户集异构且客户到达率不确定时&#xff0c;劳动力调度问题会变得特别复杂。本文因此引入了一个两阶段的随机整数规划模型&…

【静态单元格 Objective-C语言】

一、预习QQ动态 1.我们今天,是三、到四个任务,第一个任务,就是这个,预习QQ动态 OK,看到这个效果了吗 这是咱们第一个任务,第一个任务,是实现这么一个效果, 一看这个,就肯定是个啥,UITableView吧, 是不是肯定是一个TableView啊 又能滚动,又能显示一行一行的数据…

Qt QGraphicsScene、QGraphicsView类实现仪表盘

Qt QGraphicsScene、QGraphicsView类实现仪表盘 【1】UI界面设计【2】效果【3】QGraphicsScene简介【4】QGraphicsEllipseItem简介【5】QGraphicsPolygonItem简介【6】QGraphicsLineItem简介【7】QGraphicsView简介【8】仪表源码头文件源码 【1】UI界面设计 【2】效果 【3】QGr…

OpenStack(T版)——对象存储(Swift)服务介绍与安装

文章目录 OpenStack(T版)——对象存储(Swift)服务介绍与安装安装和配置(controller)准备安装和配置Swift对象存储服务组件创建账户 Ring创建容器 Ring创建对象 RingSwift 存储系统的主配置文件修改文件属主 安装和配置(compute)准备配置Swift对象存储服务组件 验证(1)加载环境变…

《程序员的AI书_从代码开始》第二章 手工实现神经网络

文章目录 2.1 感知器2.1.1 从神经元到感知器2.1.2 实现简单的感知器 2.1 感知器 2.1.1 从神经元到感知器 2.1.2 实现简单的感知器 class Perception(object):def __init__(self,eta0.01,iterations10):self.lr etaself.iterations iterationsself.w 0.0self.bias 0.0sel…

Red Hat宣布限制访问源代码,尚有两种方式可获取

日前Red Hat宣布限制访问Red Hat Enterprise Linux(RHEL)源代码&#xff0c;而此举也将影响AlmaLinux 、Rocky Linux 等下游发行版。 随即Rocky Linux发布了名为《Keeping Open Source Open》的博文。文中是这样说的&#xff1a;    Red Hat的**ERP**服务条款 (TOS) 和最终…

dotnet-dump/trace

一、dotnet-dump dotnet tool install -g dotnet-dump ps -ef | grep dotnet export PATH$PATH:$HOME/.dotnet/tools dotnet-dump collect --process-id 31555 #等待最后出输出&#xff1a;Writing full to /root/core_20230701_095230 #分析/root/core_20230701_095230文件 d…

【doxygen】支持 markdown 目录

文章目录 创建章节和子章节配置 doxygen Doxygen 不直接支持 Markdown 的 [toc] 语法。但是&#xff0c;你可以通过以下步骤手动创建目录&#xff1a; 创建章节和子章节 在 Markdown 文件中&#xff0c;使用标题标记&#xff08; # &#xff09;来创建章节和子章节。 Note:…

D2L运行环境问题+anaconda 多环境

环境问题 背景&#xff1a; 换了电脑&#xff0c;当前的电脑原先就装着Python3.9.0 直接pip install d2l & torch can work but when i start the jupyter, it use the anaconda SDK which is 3.6.4 so i need to install the d2l& torch under anaconda python sdk b…

第二章:Fast R-CNN网络详解

(目标检测篇&#xff09;系列文章目录 第一章:R-CNN网络详解 第二章:Fast R-CNN网络详解 第三章:Faster R-CNN网络详解 第四章:YOLO v1网络详解 第五章:YOLO v2网络详解 第六章:YOLO v3网络详解 文章目录 系列文章目录技术干货集锦前言一、摘要二、正文分析 1.引入库2.读…

10个最好的免费PDF阅读器清单分享

PDF&#xff08;便携式文档格式&#xff09;已成为数字文档分发和共享的事实上的标准。要高效地查看、注释和编辑 PDF 文件&#xff0c;可靠的 PDF 阅读器至关重要。在这篇综合文章中&#xff0c;我们将探讨当今可用的前 10 款 PDF 阅读器&#xff0c;评估它们的功能、可用性和…

网工内推 | 云平台运维专场,IE认证优先

01 中科创达 招聘岗位&#xff1a;云平台运维 职责描述&#xff1a; 1、驻场在客户单位处办公&#xff0c;负责H3C品牌的网络、安全、存储、云平台、服务器等软硬件设备的运行监控与管理&#xff0c;包括日常巡检、日常维护等工作&#xff1b; 2、技术支持&#xff0c;为客户…

各牌浏览器设置地址栏显示完整URL

有时候&#xff0c;我们在浏览器的地址栏输入URL后&#xff0c;需要查看完整的URL路径&#xff0c;比如想看到是http协议还是https协议。 目前大多数浏览器都直接将协议头隐藏&#xff0c;需要复制出地址&#xff0c;或者点击地址栏才能看到&#xff0c;比较麻烦。 浏览器支持通…

碳排放预测模型 | Python实现基于LR线性回归和MPR多项式回归的碳排放预测模型

文章目录 效果一览文章概述研究内容源码设计参考资料效果一览 文章概述 碳排放预测模型 | Python实现基于LR线性回归和MPR多项式回归的碳排放预测模型 研究内容 预测碳排放 查看汽车模型的数据集并预测其碳排放量。 在这里,使用线性回归和多项式回归进行预测,以找出哪个模型更…

【Python爬虫】Python爬虫三大基础模块(urllib BS4 Selenium)

【Python爬虫】Python爬虫三大基础模块&#xff08;urllib & BS4 & Selenium&#xff09; 文章目录 【Python爬虫】Python爬虫三大基础模块&#xff08;urllib & BS4 & Selenium&#xff09;一、Python爬虫的基本知识1、网络爬虫是什么&#xff1f;1&#xff0…

phpstudy nginx的解析漏洞分析

然后加入/.php 成功执行phpinfo(); 漏洞分析 这是我的生产环境,根据漏洞特性&#xff0c;大概率就是fastcgi的问题。 查看该站点相关的nginx的配置文件 可见 这里的正则处理,将文件传递给fastcgi处理&#xff0c;$fastcgi_script_name会被设置为1.png/.php&#xff0c;然后构…

kafka入门,Leader Partition 负载平衡(十五)

Leader Partition自动平衡 正常请款下&#xff0c;kafka本身会自动把Leader Partition均匀分散在个个机器上&#xff0c;来保证每台机器的读写吞吐量都是均匀的&#xff0c;但是如果某些broker宕机&#xff0c;会导致Leader partition过于集中在其他少部分几台broker上&#xf…

记录 Linux centos 安装tomact遇到的问题

如果在安装时 觉得自己什么都安装好了&#xff0c;什么也设置好了&#xff0c;包括阿里云的安全组&#xff0c;但是依旧不能进行访问Tomact的主页&#xff0c;你可以查看一下 catalina.out这个文件&#xff0c;出现以下错误这表示 tomact和Java本版有冲突所以一直无法访问&…

局域网内https证书mkcert安装

打开终端&#xff0c;输入如下命令下载mkcert&#xff1a; wget "https://dl.filippo.io/mkcert/latest?forlinux/amd64" -O mkcert && chmod x mkcert安装 mkcert需要依赖certutil&#xff0c;所以安装前需要先安装依赖包 CentOS/RHEL/Fedora/Alma/Rock…

VSCode调试通过CMakeLists.txt文件管理编译的项目

今天讲一下怎么用VS Code调试Cmake编译生成的项目&#xff0c;项目截图如下&#xff1a; 1、通过cmake生成可执行文件&#xff08;需要注意设置cmake生成debug版本&#xff0c;参考链接&#xff09;&#xff0c;如下图 之后生成可执行文件 2 VSCode切换到调试界面&#xff0c;点…