当前位置: 首页 > news >正文

数据结构与算法——链表OJ题详解(1)

文章目录

  • 一、前言
  • 二、OJ题分享
    • 2.1移除链表元素——非val尾插法
    • 2.2反转链表
      • 2.2.1头插法
      • 2.2.2三指针法
    • 2.3链表的中间结点——快慢指针法
    • 2.4合并两个有序链表
      • 2.4.1空链表法
      • 2.4.2非空链表法
    • 2.5链表的回文结构
      • 2.5.1投机取巧数组法
      • 2.5.2反转链表法
  • 三、总结

一、前言

前几天博主已经给大家介绍完了单链表的一系列功能及实现,经过这几天的沉淀相信大家已经完全消化了吧!为了趁热打铁,这次up通过分享一些有关链表的OJ题来帮大家巩固巩固,来帮助大家拿捏单链表。

二、OJ题分享

2.1移除链表元素——非val尾插法

力扣203 移除链表元素链接
在这里插入图片描述
画图展示:
在这里插入图片描述
在这里插入图片描述

解题思路:定义一个新的pcur指针从头遍历原链表,如果结点的值不等于val就把结点尾插入到新链表中,如果结点的值等于val就继续遍历下一个结点,直到为空跳出循环为止。
代码展示:

//移除链表元素
typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {ListNode* newphead = NULL;ListNode* newptail = NULL;ListNode* pcur = head;while(pcur){if(pcur->val!=val){if(newphead == NULL){newphead = newptail = pcur;}else {newptail->next = pcur;newptail = newptail->next;}}pcur = pcur->next;}if(newptail)newptail->next = NULL;return newphead;
}

2.2反转链表

力扣206链接 反转链表
在这里插入图片描述

2.2.1头插法

画图展示:
在这里插入图片描述
在这里插入图片描述
解题思路1:原链表不为空:遍历原链表,从第一个结点开始,如果此结点不为空,则直接头插到新链表中,直到原链表最后一个结点为止;原链表为空:直接返回NULL。

//反转链表头插法
typedef struct ListNode ListNode;
struct ListNode* reverseList(struct ListNode* head) {ListNode* newphead = NULL;ListNode* ret = NULL;ListNode* pcur = head;while (pcur ){ret = pcur->next;//先把原链表结点保存下来,防止下面插入后原链表指针断裂pcur->next = newphead;newphead = pcur;pcur = ret;}return newphead;//如果链表为空直接返回NULL即可
}

2.2.2三指针法

画图展示
在这里插入图片描述
在这里插入图片描述
解题思路2:
创建三个指针变量n1,n2,n3,若n2不为空,则让n2->next=n1,再让n1 = n2,n2 = n3,如果n3不为空,n3 = n3->next,一直循环直到n2为空为止。

代码展示:

//反转链表三指针法
typedef struct ListNode ListNode;
struct ListNode* reverseList(struct ListNode* head) {if (head == NULL){return NULL;}ListNode* n1 = NULL;ListNode* n2 = head;ListNode* n3 = head->next;while (n2){n2->next = n1;n1 = n2;n2 = n3;if (n3)n3 = n3->next;}return n1;
}

2.3链表的中间结点——快慢指针法

力扣876链接 链表的中间结点
在这里插入图片描述

画图展示:
在这里插入图片描述
在这里插入图片描述
解题思路:创建快慢指针slow和fast,快指针每次走两步,慢指针每次走一步,当fast为空或者fast->next为空时,slow结点的位置就是链表中间结点的位置。
代码展示:

//链表的中间结点快慢指针法
typedef  struct ListNode ListNode;
struct ListNode* middleNode(struct ListNode* head) {ListNode* slow = head;ListNode* fast = head;while(fast && fast->next){slow = slow->next;fast = fast->next->next;}return slow;
}

2.4合并两个有序链表

力扣21 合并两个有序链表链接
在这里插入图片描述

2.4.1空链表法

画图展示:
在这里插入图片描述
在这里插入图片描述
解题思路:如果两个原链表都为空:直接返回NULL;如果有一个原链表为空:则返回另外一个链表的头结点;如果两个链表都不为空:创建一个新链表,同时遍历两个原链表,比较结点值的大小,把值小的结点插入到新链表中,然后再比较下一个结点中值的大小,直到某一个链表遍历到空为止,最后将另外一个链表剩下的结点依次插入到新链表中即可,最后再返回新链表的头结点。
代码展示:

//创建空链表法
typedef struct ListNode ListNode;
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {if (list1 == NULL)//判断原链表是否存在为空的情况{return list2;}if (list2 == NULL){return list1;}ListNode* l1 = list1;ListNode* l2 = list2;ListNode* newhead;ListNode* newtail;ListNode* newnode = NULL;newhead = newtail = newnode;while (l1 && l2)//原链表都不为空{if (l1->val < l2->val){if (newhead == NULL){newhead = newtail = l1;}else{newtail->next = l1;newtail = newtail->next;}l1 = l1->next;}else{if (newhead == NULL){newhead = newtail = l2;}else{newtail->next = l2;newtail = newtail->next;}l2 = l2->next;}}//一个链表已经遍历完,剩下另外一个链表if (l1){newtail->next = l1;}if (l2){newtail->next = l2;}return newhead;
}

2.4.2非空链表法

不知道在看完上面的空链表法之后,宝子们是否注意到这个细节呢
在这里插入图片描述
在这里插入图片描述
因为我们创建的新链表是空链表,所以我们在尾插第一个结点的时候,我们都会判断新链表是否为空的情况。但是这就出现了一个问题——反复出现了冗余的代码。我们都知道这是一个不好的习惯。那又有没有什么办法来避免呢?办法肯定是有的,既然你创建空链表要判断,那我们不如创建一个非空链表。
画图展示:
在这里插入图片描述
在这里插入图片描述
解题思路:先创建一个结点从而创立非空链表。如果两个原链表都为空:直接返回NULL;如果有一个原链表为空:则返回另外一个链表的头结点;如果两个链表都不为空:同时遍历两个原链表,比较结点值的大小,把值小的结点插入到新链表中,然后再比较下一个结点中值的大小,直到某一个链表遍历到空为止,最后将另外一个链表剩下的结点依次插入到新链表中即可,最后用rethead把newhead->next结点保存下来,再把newhead结点释放掉,最后在返回rethead结点。

//创建非空链表法
typedef struct ListNode ListNode;
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {if (list1 == NULL){return list2;}if (list2 == NULL){return list1;}ListNode* l1 = list1;ListNode* l2 = list2;ListNode* newhead;ListNode* newtail;ListNode* newnode = NULL;newnode = (ListNode*)malloc(sizeof(ListNode));newhead = newtail = newnode;while (l1 && l2){if (l1->val < l2->val){newtail->next = l1;newtail = newtail->next;l1 = l1->next;}else{newtail->next = l2;newtail = newtail->next;l2 = l2->next;}}if (l1){newtail->next = l1;}if (l2){newtail->next = l2;}ListNode* rethead = newhead->next;free(newhead);newhead = NULL;return rethead;
}

2.5链表的回文结构

牛客 链表的回文结构链接
在这里插入图片描述

2.5.1投机取巧数组法

画图展示:
在这里插入图片描述
在这里插入图片描述
解题思路:把链表中的元素放入数组中,创建left和right两个变量,分别是数组第一个元素下标和最后一个元素下标,当left<right时,判断arr[left]与arr[right]是否相等。相等则left++,right–。如果出现不相等的情况,则不是回文结构。如果当不满足left<right跳出循环的时候,依旧没有出现不相等的情况,则是回文结构。

//创建数组法
bool chkPalindrome(ListNode* A) {int arr[900] = {0};ListNode* pcur = A;int i = 0;while(pcur){arr[i++] = pcur->val;pcur = pcur->next;}int left = 0;int right = i-1;while(left<right){if(arr[left] != arr[right]){return false;;}left++;right--;}return true;}

2.5.2反转链表法

画图展示:
在这里插入图片描述
解题思路:先用快慢指针找到中间结点,再把中间结点及以后的结点反转,依次与前面的结点比较,判断值是否相等。

//反转链表法
ListNode* middleNode(ListNode* head) {//快慢指针找中间结点ListNode* slow;ListNode* fast;slow = fast = head;while (fast && fast->next) {slow = slow->next;fast = fast->next->next;}return slow;
}
ListNode* reverseList(ListNode* head) {//反转中间结点及以后的结点if (head == NULL) {return head;}ListNode* n1, n2, n3;n1 = NULL, n2 = head, n3 = head->next;while (n2) {n2->next = n1;n1 = n2;n2 = n3;if (n3)n3 = n3->next;}return n1;
}bool chkPalindrome(ListNode* A) {ListNode* mid = middleNode(A);ListNode* right = reverseList(mid);ListNode* left = A;while (right) {if (left->val != right->val) {return false;}left = left->next;right = right->next;}return true;}

三、总结

OK啊,up这次就先给大家分享5道有关单链表OJ题。希望大家可以及时消化。但是up要分享的题还远远没有结束。剩下的OJ题我也会在整理完毕之后和大家分享。接着这些题目确实是有一些难度的,希望大家好好理解,认真消化,如果up描述的有拗口的地方还希望大家多多包含。最后就是解决这些题目的方法肯定是不止这一两种,up呢只是从复杂度优化的方面着手,如果大家有其他的好的方法欢迎大家@我。谢谢大家,请大家期待下一期OJ分享吧!记得一键三连哦。

学习如磨砺宝剑,日久见锋芒,愿你持之以恒,铸就辉煌人生。
在这里插入图片描述

相关文章:

数据结构与算法——链表OJ题详解(1)

文章目录 一、前言二、OJ题分享2.1移除链表元素——非val尾插法2.2反转链表2.2.1头插法2.2.2三指针法 2.3链表的中间结点——快慢指针法2.4合并两个有序链表2.4.1空链表法2.4.2非空链表法 2.5链表的回文结构2.5.1投机取巧数组法2.5.2反转链表法 三、总结 一、前言 前几天博主已…...

sedex认证2025年变化重点

近日&#xff0c;SEDEX突然宣布&#xff1a;2025年7月1日起&#xff0c;全通知审核正式退出历史舞台&#xff0c;取而代之的是至少3周窗口期的半通知突击审核。这场被业内称为“供应链透明化革命”的调整&#xff0c;或将重塑全球工厂合规生态。 三大变化划重点&#xff1a; 1…...

Scala课后总结(8)

集合计算高级函数 过滤&#xff08;filter&#xff09; 从集合里挑出符合特定条件元素组成新集合 。比如从整数集合里选出偶数&#xff0c; list.filter(x > x % 2 0) &#xff0c;就是筛选出能被2整除的元素。 转化/映射&#xff08;map&#xff09; 对集合每个元素应…...

老硬件也能运行的Win11 IoT LTSC (OEM)物联网版

#记录工作 Windows 11 IoT Enterprise LTSC 2024 属于物联网相关的版本。 Windows 11 IoT Enterprise 是为物联网设备和场景设计的操作系统版本。它通常针对特定的工业控制、智能设备等物联网应用进行了优化和定制&#xff0c;以满足这些领域对稳定性、安全性和长期支持的需求…...

蓝桥杯冲刺题单--二分

二分 知识点 二分&#xff1a; 1.序列二分&#xff1a;在序列中查找&#xff08;不怎么考&#xff0c;会比较难&#xff1f;&#xff09; 序列二分应用的序列必须是递增或递减&#xff0c;但可以非严格 只要r是mid-1&#xff0c;就对应mid&#xff08;lr1&#xff09;/2 2.答…...

计网 2025/4/8

CDMA? CRC循环冗余检验 PPP协议的帧格式 字节填充&#xff08;异步传输、7E->7D5E&#xff09;零比特填充&#xff08;同步传输、确保不会出现连续6个1&#xff09; CSMA/CD协议 多点接入载波监听碰撞检测 一些概念&#xff1a; 争用期 一些公式&#xff1a; 最短有效帧…...

java设计模式-工厂模式

工厂模式 简单工厂模式 请看类&#xff1a; org.xwb.springcloud.factory.simple.PizzaStore 1、简单工厂模式是属于创建型模式&#xff0c;是工厂模式的一种&#xff0c;简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实力。简单来工厂模式就是工厂模式家族中最简单最…...

2025年客运从业资格证备考刷题题库

题库中通常包含大量的题目&#xff0c;以全面覆盖考试的知识点。通过做大量的题目&#xff0c;考生可以熟悉各种考试题型和命题方式&#xff0c;提高答题的速度和准确性&#xff0c;同时也能发现自己在知识掌握上的薄弱环节&#xff0c;有针对性地进行复习和强化训练。 1、驾驶…...

Zephyr、FreeRTOS、RT-Thread 任务创建对比分析

一、任务模型与核心概念 特性ZephyrFreeRTOSRT-Thread任务术语线程&#xff08;Thread&#xff09;任务&#xff08;Task&#xff09;线程&#xff08;Thread&#xff09;执行单元线程&#xff08;单地址空间&#xff09;任务&#xff08;共享内存空间&#xff09;线程&#x…...

RK-realtime Linux

rk3562实时性数据:最大76us rk3568实时性数据:最大126us rk3588实时性数据:最大30us 注意事项 (1)RK3568 需要使用RT版本的BL31,实时性能更好 ​ a)rkbin需要更新到最新,且包含这个补丁:...

Ubuntu 22 Linux上部署DeepSeek+RAG知识库操作详解(Dify方式)之1

一、安装Docker 1. 更新你的包索引 首先&#xff0c;确保你的包列表是最新的。打开终端并运行以下命令&#xff1a; sudo apt update 2. 安装必要的依赖项 安装Docker之前&#xff0c;你需要安装一些必要的依赖项。运行以下命令来安装它们&#xff1a; sudo apt install apt…...

将飞帆制作的网页作为 div 集成到自己的网页中

并且自己的网页可以和飞帆中的控件相互调用函数。效果&#xff1a; 上链接 将飞帆制作的网页作为 div 集成到自己的网页中 - 文贝 进入可以复制、运行代码...

【C++游戏引擎开发】《几何算法》(3)AABB/OBB碰撞检测

一、AABB(轴对齐包围盒) 1.1 定义 ​最小点: m i n = ( x min , y min , z min ) \mathbf{min} = (x_{\text{min}}, y_{\text{min}}, z_{\text{min}}) min=(xmin​,ymin​,zmin​)​最大点: m a x = ( x max , y max , z max ) \mathbf{max} = (x_{\text{max}}, y_{\text{…...

基于人工智能的高中教育评价体系重构研究

基于人工智能的高中教育评价体系重构研究 一、引言 1.1 研究背景 在科技飞速发展的当下&#xff0c;人工智能技术已广泛渗透至各个领域&#xff0c;教育领域亦不例外。人工智能凭借其强大的数据处理能力、智能分析能力和个性化服务能力&#xff0c;为教育评价体系的创新与发…...

【C++游戏引擎开发】数学计算库GLM(线性代数)、CGAL(几何计算)的安装与使用指南

写在前面 两天都没手搓实现可用的凸包生成算法相关的代码&#xff0c;自觉无法手搓相关数学库&#xff0c;遂改为使用成熟数学库。 一、GLM库安装与介绍 1.1 vcpkg安装GLM 跨平台C包管理利器vcpkg完全指南 在PowerShell中执行命令&#xff1a; vcpkg install glm# 集成到系…...

Python 字典和集合(常见的映射方法)

本章内容的大纲如下&#xff1a; 常见的字典方法 如何处理查找不到的键 标准库中 dict 类型的变种set 和 frozenset 类型 散列表的工作原理 散列表带来的潜在影响&#xff08;什么样的数据类型可作为键、不可预知的 顺序&#xff0c;等等&#xff09; 常见的映射方法 映射类型…...

Qt 自带的QSqlDatabase 模块中使用的 SQLite 和 SQLite 官方提供的 C 语言版本(sqlite.org)对比

Qt 自带的 QSqlDatabase 模块中使用的 SQLite 和 SQLite 官方提供的 C 语言版本&#xff08;sqlite.org&#xff09;在核心功能上是相同的&#xff0c;但它们在集成方式、API 封装、功能支持以及版本更新上存在一些区别。以下是主要区别&#xff1a; 1. 核心 SQLite 引擎 Qt 的…...

按键长按代码

这些代码都存放在定时器中断中。中断为100ms中断一次。 数据判断&#xff0c;看的懂就看吧...

zk源码—3.单机和集群通信原理一

大纲 1.单机版的zk服务端的启动过程 (1)预启动阶段 (2)初始化阶段 2.集群版的zk服务端的启动过程 (1)预启动阶段 (2)初始化阶段 (3)Leader选举阶段 (4)Leader和Follower启动阶段 1.单机版的zk服务端的启动过程 (1)预启动阶段 (2)初始化阶段 单机版zk服务端的启动&…...

车企数字化转型:从“制造工厂”到“移动科技平台”的升维路径

一、战略重构&#xff1a;政策与产业变革的双重倒逼 中国《智能网联汽车技术路线图2.0》明确要求2030年L4级自动驾驶新车渗透率达20%&#xff0c;而麦肯锡数据显示&#xff0c;全球车企数字化投入占比已从2018年的7%跃升至2025年的18%。当前车企面临三大核心挑战&#xff1a;用…...

C++-Mongoose(2)-https-server-openssl

OpenSSL生成HTTPS自签名证书 - 简书 1.Openssl windowsubuntu下载http://www.openssl.vip/download1.VS2019编译OpenSSL 2.VS2019编译第一个OpenSSL项目 1.ubuntu编译OpenSSL 3.0 2.编写第一个OpenSSL 1.windows下编译OpenSSL 安装vs2019 perl nasm安装activePerl…...

nginx正向代理https

一、需求 公司内部服务器向外访问腾讯接口&#xff1a;https://qyapi.weixin.qq.com/cgi-bin&#xff0c;不能使用http直接访问。并且不支持域名&#xff0c;还需要设置互联网出口-出向白名单ip。 如何在尽量少改动代码的情况下实现应用的出向访问链接&#xff0c;考虑使用正向…...

Flask中的蓝图(Blueprint)浅讲

BluePrint Flask中的蓝图&#xff08;Blueprint&#xff09;​是一种强大的组织工具&#xff0c;能够将大型应用拆分为可重用的模块化组件 1. ​模块化组织 用途&#xff1a;将应用按功能拆分为独立模块&#xff0c;提升代码可维护性。​示例&#xff1a; # user/views.py fr…...

虚拟表、TDgpt、JDBC 异步写入…TDengine 3.3.6.0 版本 8 大升级亮点

近日&#xff0c;TDengine 3.3.6.0 版本正式发布。除了此前已亮相的时序数据分析 AI 智能体 TDgpt&#xff0c;本次更新还带来了多个针对性能与易用性的重要增强&#xff1a;虚拟表全面上线&#xff0c;支持更灵活的一设备一表建模&#xff1b;JDBC 写入机制全新升级&#xff0…...

大型语言模型智能应用Coze、Dify、FastGPT、MaxKB 对比,选择合适自己的LLM工具

大型语言模型智能应用Coze、Dify、FastGPT、MaxKB 对比&#xff0c;选择合适自己的LLM工具 Coze、Dify、FastGPT 和 MaxKB 都是旨在帮助用户构建基于大型语言模型 (LLM) 的智能应用的平台。它们各自拥有独特的功能和侧重点&#xff0c;以下是对它们的简要对比&#xff1a; Coz…...

WEB安全--XSS--DOM破坏

一、前言 继XSS基础篇后&#xff0c;我们知道了三种类型的XSS&#xff0c;这篇文章主要针对DOM型XSS的原理进行深入解析。 二、DOM型XSS原理 2.1、什么是DOM 以一个形象的比喻&#xff1a; 网页就像是一座房子&#xff0c;而 **DOM** 就是这座房子的“蓝图”或者“结构图”。…...

持续集成:GitLab CI/CD 与 Jenkins CI/CD 的全面剖析

一、引言 在当今快速迭代的软件开发领域,持续集成(Continuous Integration,CI)已成为保障软件质量、加速开发流程的关键实践。通过频繁地将代码集成到共享仓库,并自动进行构建和测试,持续集成能够尽早发现并解决代码冲突和缺陷。而 GitLab CI/CD 和 Jenkins CI/CD 作为两…...

Go语言sync.Mutex包源码解读

互斥锁sync.Mutex是在并发程序中对共享资源进行访问控制的主要手段&#xff0c;对此Go语言提供了非常简单易用的机制。sync.Mutex为结构体类型&#xff0c;对外暴露Lock()、Unlock()、TryLock()三种方法&#xff0c;分别用于阻塞加锁、解锁、非阻塞加锁操作&#xff08;加锁失败…...

FreeRTOS软件定时器

软件定时器就是"闹钟"&#xff0c;你可以设置闹钟&#xff0c; 用软件定时器的话USE_TIMER要设置为1 在30分钟后让你起床工作每隔1小时让你例行检查机器运行情况 软件定时器也可以完成两类事情&#xff1a; 在"未来"某个时间点&#xff0c;运行函数周期…...

Selenium三大等待

一、强制等待 1.设置完等待后不管有没有找到元素&#xff0c;都会执行等待&#xff0c;等待结束后才会执行下一步 2.实例&#xff1a; driver webdriver.Chrome()driver.get("https://www.baidu.com")time.sleep(3) # 设置强制等待driver.quit() 二、隐性等待 …...

【Ansible自动化运维】一、初步了解,开启自动化运维之旅

在当今数字化时代&#xff0c;随着企业 IT 基础设施规模的不断扩大&#xff0c;传统的手工运维方式逐渐显得力不从心。自动化运维技术应运而生&#xff0c;其中 Ansible 凭借其简洁易用、功能强大的特点&#xff0c;成为众多运维工程师和开发人员的首选工具。本篇文章将从基础概…...

雪花算法、md5加密

雪花算法生成ID是一个64位长整型&#xff08;但是也可以通过优化简短位数&#xff09; 组成部分&#xff1a; 时间戳 机器ID 序列号 用途&#xff1a; 分布式系统唯一ID生成&#xff1a;解决数据库自增ID在分布式环境下的唯一性问题、避免UUID的无序性和性能问题 有序性…...

micro介绍

micro介绍 Micro 的首要特点是易于安装&#xff08;它只是一个静态的二进制文件&#xff0c;没有任何依赖关系&#xff09;和易于使用Micro 支持完整的插件系统。插件是用 Lua 编写的&#xff0c;插件管理器可自动为你下载和安装插件。使用简单的 json 格式配置选项&#xff0…...

电视盒子 刷armbian

参考 中兴电视盒子中兴B860AV3.2-M刷Armbian新手级教程-CSDN博客 1.刷安卓9 带root版本 a. 下载安卓线刷包 链接&#xff1a;https://pan.baidu.com/s/1hz87_ld2lJea0gYjeoHQ8A?pwdd7as 提取码&#xff1a;d7as b.拆机短接 3.安装usbburning工具 使用方法 &#xff0c;…...

(七)lerobot开源项目so100新版本全流程操作(操作记录)

目录 《项目简介》 一、环境配置 1、创建虚拟环境 2、克隆项目并安装所需包 二、主从臂硬件准备 1、舵机配置 &#xff08;1&#xff09;分别查看主从臂的开发板端口号 &#xff08;2&#xff09;分别设置主从臂的舵机 2、组装主从臂 3、查看主从臂端口号和相机端…...

智慧景区能源管理解决方案,为旅游“升温”保驾护航

景区能源管理 当下痛点 1 高峰期用电负荷大 节假日和旅游旺季等高峰期用电需求增大&#xff0c;电力供应不足、电网负荷过大&#xff1b; 2 设备维护困难 景区内电力设备多且散&#xff0c;包括发电机组、变电站、配电设备等&#xff0c;维护和管理困难&#xff0c;特别是…...

LCR 056. 两数之和 IV - 输入二叉搜索树

文章目录 题意思路代码 题意 题目链接 思路 代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), …...

AI搜索+法律咨询:在「事实重构」与「程序正义」的博弈场‌

已经写了股票和医疗相关的内容&#xff0c;今天聊一下AI搜索和法律结合的应用场景。AI搜索不替用户做选择&#xff0c;却让我们握住了法律武器的说明书。 ​​​​​​​一、AI重构事实&#xff1a;技术理想与法律现实的碰撞 ‌ 1、案例切入&#xff1a;AI能否还原车祸责任比…...

多模态大模型重塑自动驾驶:技术融合与实践路径全解析

目录 1、 引言&#xff1a;AI与自动驾驶的革命性融合 2、五大领先多模态模型解析 2.1 Qwen2.5-Omni&#xff1a;全模态集大成者 2.2. LLaVA&#xff1a;视觉语言理解专家 2.3. Qwen2-VL&#xff1a;长视频理解能手 2.4. X-InstructBLIP&#xff1a;跨模态理解框架 2.5. …...

海阳科技IPO:业务独立性、业绩稳定性、财务规范性存致命缺陷

三角形是最稳定的结构&#xff0c;它既是完美的相互制衡&#xff0c;又是有力的彼此支撑。 ——佚名 引 言 IPO审议指标、要求、规定众多&#xff0c;有无一个直接简单的公式&#xff1f;该公式可以直接将造假等“低劣”IPO项目排除在外&#xff1f; 在《奕泽财经》看来…...

PyTorch 与 Python 装饰器及迭代器的比较与应用

在深度学习和 Stable Diffusion&#xff08;SD&#xff09;训练过程中&#xff0c;PyTorch 不仅依赖于 Python 的基础特性&#xff0c;而且通过扩展和封装这些特性&#xff0c;提供了更高效、便捷的训练和推理方式。本文将从装饰器和迭代器两个方面详细解释 Python 中的原生实现…...

大数据(5)(基础概念)Spark从入门到实战:核心原理与大数据处理实战案例

目录 一、背景介绍1‌. 为什么需要Spark&#xff1f;‌‌2. Spark的诞生‌&#xff1a; 二、Spark核心原理1. ‌四大核心特性‌2. ‌核心架构‌3. ‌执行流程‌ 三、Spark实战案例案例1&#xff1a;单词计数&#xff08;WordCount&#xff09;案例2&#xff1a;实时流处理&…...

Ubuntu小练习

文章目录 一、远程连接1、通过putty连接2、查看putty运行状态3、通过Puuty远程登录Ubuntu4、添加新用户查看是否添加成功 5、用新用户登录远程Ubuntu6、使用VNC远程登录树莓派 二、虚拟机上talk聊天三、Opencv1、简单安装版&#xff08;适合新手安装&#xff09;2、打开VScode特…...

运行Spark会出现恶问题

1. 依赖冲突问题&#xff1a;Spark依赖众多组件&#xff0c;如Scala、Hadoop等。不同版本的依赖之间可能存在兼容性问题&#xff0c;导致Spark无法正常运行。比如&#xff0c;特定版本的Spark可能要求与之匹配的Scala版本&#xff0c;若使用了不兼容的Scala版本&#xff0c;会在…...

uniapp大文件分包

1. 在pages.json中配置 "subPackages":[{"root":pagesUser,"pages":[{"path":mine/xxx,"style":xxx },{"path":mine/xxx,"style":xxx}]},{"root":pagesIndex,"pages":[{"p…...

Git 源码打包、迁移、恢复和备份

介绍 Git 项目打包方式&#xff0c;适用于源码交付、迁移、备份等场景。 一 Git 仓库的两种类型 在实际项目开发与交付中&#xff0c;常接触 的 两种 Git 仓库&#xff1a; 仓库类型是否包含源码适用场景普通仓库是本地开发、运行、构建裸仓库否代码托管、只读交付、备份 普…...

Linux 内核网络协议栈中的 struct packet_type:以 ip_packet_type 为例

在 Linux 内核的网络协议栈中,struct packet_type 是一个核心数据结构,用于注册特定协议类型的数据包处理逻辑。它定义了如何处理特定协议的数据包,并通过协议类型匹配机制实现协议分发。本文将通过分析 ip_packet_type 的定义和作用,深入探讨其在网络协议栈中的重要性。 …...

LeetCodeHot100-第三章:数学

面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 目录 &#x1f388;1、双指针&#xff1a;9. 回文数 &#x1f388;2、逻辑题 &#xff1a;66. 加一 &#x1f388;3、逻辑题&#xff1a;172. 阶乘后的零 &#x1f388;4、…...

JavaScript 错误处理:理解和应对异常

在编程中&#xff0c;错误是不可避免的&#xff0c;特别是在进行复杂的逻辑操作、与外部系统交互或处理用户输入时。错误处理是软件开发中非常重要的一部分&#xff0c;它可以帮助开发者提高应用的稳定性和可用性。本文将深入探讨JavaScript中的错误处理机制&#xff0c;如何利…...

LangGraph异步化sqlite checkpoint

安装 pip install langgraph-checkpoint-sqlite异步checkpiont初始化&#xff1a; from langgraph.checkpoint.sqlite.aio import AsyncSqliteSaver conn aiosqlite.connect(":memory:", check_same_threadFalse) memory AsyncSqliteSaver(conn)如果使用异步流式…...