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

力扣hot100【链表】

160.相交链表

题目
我的思路:两个链表一长一短,先把长的提前遍历使两个链表的长度相等,然后同时遍历,如果遍历的节点相等时说明相交,否则不相交。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* p=headA;ListNode* q=headB;int countA=0,countB=0;while(p->next){countA++;p=p->next;}while(q->next){countB++;q=q->next;}int differ=abs(countA-countB);p=headA;q=headB;while(differ--){if(countA>countB){p=p->next;}else {q=q->next;}}while(p&&q){if(p==q)return p;p=p->next;q=q->next;}return NULL;}
};

官方:
方法一:哈希集合
把A的先放到哈希表内,然后遍历B,看B的节点是否有在A中的,如果有说明是交点。

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {unordered_set<ListNode *> visited;ListNode *temp = headA;while (temp != nullptr) {visited.insert(temp);temp = temp->next;}temp = headB;while (temp != nullptr) {if (visited.count(temp)) {return temp;}temp = temp->next;}return nullptr;}
};作者:力扣官方题解
链接:https://leetcode.cn/problems/intersection-of-two-linked-lists/solutions/811625/xiang-jiao-lian-biao-by-leetcode-solutio-a8jn/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

反思:查找交集的题目可以联想到哈希表。
方法二:双指针

142.环形链表2

题目
方法一:哈希

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {unordered_set<ListNode*> visited;ListNode*p=head;while(p){if(!visited.count(p)){ visited.insert(p);}else return p;p=p->next;}return NULL;}
};

方法2:快慢指针
思路:公式推导(根据链条长度和快的是慢的两倍关系,推导环内长度与环外长度的倍数关系),再找快慢指针先相遇的地方,根据公式长度倍数关系,设置第三个指针,然后第三个指针与慢指针同时遍历,直到相遇的地方就是环的入口。
注意:fast指针的空的时候就是链表内无环。

class Solution {
public:ListNode *detectCycle(ListNode *head) {ListNode *slow = head, *fast = head;while (fast != nullptr) {slow = slow->next;if (fast->next == nullptr) {return nullptr;}fast = fast->next->next;if (fast == slow) {ListNode *ptr = head;while (ptr != slow) {ptr = ptr->next;slow = slow->next;}return ptr;}}return nullptr;}
};作者:力扣官方题解
链接:https://leetcode.cn/problems/linked-list-cycle-ii/solutions/441131/huan-xing-lian-biao-ii-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

24. 两两交换链表中的节点

题目
我的思路:双指针交换,卡的点:边界最后的交换,以及head==NULL时,还有while先判断q不为空,然后再q->next不为空,不能只写while(q->next).

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* swapPairs(ListNode* head) {if(head==NULL||head->next==NULL) return head;ListNode* p=head,*q=p->next;while(q&&q->next){if(q&&p)swap(q->val,p->val);p=q->next;q=p->next;            }if(q){swap(q->val,p->val);}return head;}
};

官方写的:没看。。

19. 删除链表倒数第N个节点

我的思路,双指针,相差N但是卡了bug进行了边界处理,而且多了一个没必要的pre指针,其实不好,不通用,官方的双指针用了虚拟头节点。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode*p=head,*q=head,*pre=head;while(n--){q=q->next;}  if(q==NULL)//卡了边界值的bug{return head->next;}      while(q){pre=p;p=p->next;q=q->next;}pre->next=p->next;return head;}
};

官方:没看,三种方法。。。

2.两数相加

题目
错误的:误以为只能两个长度一样的链表可以相加,其实长度不同也可以相加,并且用到了reverse(str),std::istoi(str),其实完全不必要,看题解!!!我的问题是经常用while循环好几次,题解都是一次做好多事情,一次结束了。
错误的思路:只觉得两个链表长度相等才可相加,没有解决进位的问题。
下面是错误的:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/错误的!!!!!!!!!!!!!!!!!!!!!!!
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode* p=l1,*q=l2;ListNode* k=new ListNode(0),*head=k;string s1,s2;int num1,num2,sum;while(p->next&&q->next){s1+=p->val;s2+=q->val;p=p->next;q=q->next;}reverse(s1.begin(),s1.end());reverse(s2.begin(),s2.end());num1=std::stoi(s1);num2=std::stoi(s2);sum=num1+num2;while(sum){int num=sum/10;sum=sum/10;ListNode* t=new ListNode(num);k->next=t;k=k->next;}return head;}
};

官方思路:
l1,l2链表节点逐个相加,并且考虑进位,是进到下一个节点去了,使用的尾插法,刚好最后的结果也是逆序。
sum=node1->val+node2->val;
carry进位:sum/10
长度不相等时:短的链表后面有若干个0

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode* head=NULL,*tail=NULL;int carry=0;while(l1||l2){int n1=l1?l1->val:0;int n2=l2?l2->val:0;int sum=n1+n2+carry;if(!head){head=tail=new ListNode(sum%10);  //注意这里是%而不是/}else{tail->next=new ListNode(sum%10); //新节点的next为空tail=tail->next;}carry=sum/10;if(l1){l1=l1->next;}if(l2){l2=l2->next;}if(carry>0){tail->next=new ListNode(carry);}}return head;}  
};

148. 排序链表

题目
我的思路:用一个数组存储链表的数据,然后使用sort逆序,再次遍历链表替换成逆序的数据。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* sortList(ListNode* head) {ListNode* p=head;vector<int> v;while(p){v.push_back(p->val);p=p->next;}sort(v.begin(),v.end());p=head;int i=0;while(p){p->val=v[i++];p=p->next;}return head;}
};

官方:
归并排序,待看。。。。

138.随机链表的复制

题目
自己的想法是弄到数组里,然后再用哈希表查询看random是第几个,但是感觉很麻烦,看了评论区的一个方法:牛!

/*
// Definition for a Node.
class Node {
public:int val;Node* next;Node* random;Node(int _val) {val = _val;next = NULL;random = NULL;}
};
*/class Solution {
public:Node* copyRandomList(Node* head) {if(head==NULL)return NULL;unordered_map<Node*,Node*> map;   Node* cur=head;while(cur){map.emplace(cur,new Node(cur->val));cur=cur->next;}cur=head;while(cur){map[cur]->next=map[cur->next];map[cur]->random=map[cur->random];cur=cur->next;}return map[head];}
};

官方答案待看。。。。

25. k个一组反转链表

题目
没思路,直接看的答案。。。

146.LRU缓存

题目

23. 合并K个升序链表

题目

相关文章:

力扣hot100【链表】

160.相交链表 题目 我的思路&#xff1a;两个链表一长一短&#xff0c;先把长的提前遍历使两个链表的长度相等&#xff0c;然后同时遍历&#xff0c;如果遍历的节点相等时说明相交&#xff0c;否则不相交。 /*** Definition for singly-linked list.* struct ListNode {* …...

PyTorch 生态迎来新成员:SGLang 高效推理引擎解析

SGLang 现已正式融入 PyTorch 生态系统&#xff01;此次集成确保了 SGLang 符合 PyTorch 的技术标准与最佳实践&#xff0c;为开发者提供了一个可靠且社区支持的框架&#xff0c;助力大规模语言模型&#xff08;LLM&#xff09;实现高效且灵活的推理。 如需深入了解 PyTorch…...

C++ Primer Plus 编程练习题 第六章 分支语句和逻辑运算符

1.大小写转换 使用cctype库里的函数进行大小写转换,但要注意使用toupper或tolower时要进行强制类型转换&#xff0c;否则会输出ASCII值 #include <iostream> #include<cctype> using namespace std;int main() {cout << "请输入字符串&#xff08;大…...

一文详解OpenGL环境搭建:Windows使用CLion配置OpenGL开发环境

在计算机图形学的广阔领域中,OpenGL作为行业标准的图形库,为开发者提供了强大的工具集来创建从简单的2D图形到复杂的3D世界。然而,对于初学者和经验丰富的开发者而言,选择一个合适的开发环境是迈向成功的第一步。尤其是在Windows平台上,配置一个既支持现代C++编程实践又能…...

一次奇怪的enq: TX - row lock contention锁问题处理

某天上午客户告知数据库库有锁导致数据库卡死&#xff0c;需排查出问题的原因&#xff0c;从根本上解决问题。 按正常步骤&#xff0c;查询V$SESSION中BLOCKING_SESSION列不为空的&#xff0c;发现没有进程互相阻塞的情况&#xff1b;而查询ACTIVE会话&#xff0c;则有大量进程…...

STL常用容器整理

STL常用容器操作整理 STL常用容器操作整理&#xff08;string/vector/set/map&#xff09;一、string&#xff08;字符串&#xff09;构造函数元素访问修改操作容量操作子串与查找 二、vector&#xff08;动态数组&#xff09;构造函数元素访问修改操作容量操作 三、set&#x…...

深入 PostgreSQL 内部:5 个关键阶段拆解查询处理全流程

引言 当您向 PostgreSQL 发送查询时&#xff0c;后端会经历多个处理阶段。每个阶段承担着不同的职责&#xff0c;以确保您能在最短时间内获得准确响应。虽然这些阶段可能庞大而复杂&#xff0c;但理解它们在查询处理中的角色对 PostgreSQL 开发者至关重要。本文将概述每个查询…...

解析 LILIkoi 光纤力传感器:FBG 原理铸就耐高温抗干扰优势

LILIkoi光纤力传感器通过光纤光栅&#xff08;FBG&#xff09;技术实现高精度力测量。其核心原理基于光纤内光栅栅距的微小变化&#xff0c;用以感知外界施加的力。该传感器在高温、强辐射等恶劣环境中表现出色&#xff0c;能够有效抵抗电磁干扰和温度漂移。凭借卓越的性能&…...

SU-YOLO:基于脉冲神经网络的高效水下目标检测模型解析

论文地址:https://arxiv.org/pdf/2503.24389 目录 一、论文概述 二、创新点解析 1. 基于脉冲的水下图像去噪(SpikeDenoiser) 原理与结构 2. 分离批归一化(SeBN) 原理与结构 3. 优化的残差块(SU-Block) 原理与结构 三、代码复现指南 环境配置 模型训练 四、…...

有关eeprom以及pwm

a0 a1就是对应的 芯片的 写和读 0写 1读 使用操作 主函数读一次 然后信息里一直写入。 用level设置挡位 如 10个格子 设置2 3 这样占空比就有了...

JMeter教程|0到1学会接口性能压测第14课-JMeter接口性能测试全流程讲解

Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。 本文以百度搜索接口为例,全流程讲解JMeter接口性能测试。从JMeter下载安装到编写一个…...

系统思考:问题诊断

“做事不怕困难&#xff0c;怕的是不明白困难出在哪里。” —— 亨利福特 最近发现&#xff0c;有些领导者或者团队&#xff0c;常常急于给出解决方案&#xff0c;却忽视了最关键的一步——诊断问题的根源。团队甚至在集体心智模式的影响下&#xff0c;连问题本身都搞错了方向…...

有效压缩 Hyper-v linux Centos 的虚拟磁盘 VHDX

参考&#xff1a; http://www.360doc.com/content/22/0505/16/67252277_1029878535.shtml VHDX 有个不好的问题就是&#xff0c;如果在里面存放过文件再删除&#xff0c;那么已经使用过的空间不会压缩&#xff0c;导致空间一直被占用。那么就需要想办法压缩空间。 还有一点&a…...

使用 redis 实现消息队列

方案1: 使用list做消息队列问题1: 如何保证消息不丢失问题 2: 重复消费/幂等 方案 2: zset实现消息队列方案 3: 发布/订阅(pub/sub)问题1: 如何保证消息不丢失问题 2: 重复消费/幂等 方案 4: Stream 实现消息队列问题1: 如何保证消息不丢失问题 2: 重复消费/幂等 方案1: 使用li…...

2025 XYCTF Pwn-wp(含附件)

前言 总体来说Pwn方向题目难度属于中等,属于那种一眼看不出要咋做,但多试试又能做出来的那种,比赛的时候甚至有几只队伍AK了Pwn方向。感觉题目还是很不错的尽管比赛中有一些小意外像是有些题目附件给错了&#xff0c;但是XYCTF的师傅们都是无偿出题纯热爱向大伙分享自己的题目…...

verilog有符号数的乘法

1、单周期乘法器 对于低速要求的乘法器&#xff0c;可以简单的使用 * 实现。 module Mult(input wire [7:0] multiplicand ,input wire [7:0] multipliter ,output wire [7:0] product);assign product multiplicand * multipliter …...

【python3】关于等额本金和等额本息计算

【python3】关于等额本金和等额本息计算 1.背景2.计算3.总结4.推导 1.背景 在贷款买房的宝子们一定有了解等额本金和等额本息&#xff0c;年轻的时候只听销售在那里计算&#xff0c; 您可能听得云里雾里。 等额本金&#xff1a;每个月还的本金固定&#xff0c;利息逐渐减少。…...

git怎么删除远程分支

删除远程分支 引言删除远程分支查看远程分支查看远程分支详情删除远程分支 引言 本文旨在记录一下&#xff0c;git如何通过命令行删除远程分支。 删除远程分支 查看远程分支 使用指令&#xff1a; git branch -r查看远程分支详情 使用指令&#xff1a; git remote show …...

【C++】函数直接返回bool值和返回bool变量差异

函数直接返回bool值和返回bool变量差异 背景 在工作中遇到一个比较诡异的问题&#xff0c;场景是给业务方提供的SDK有一个获取状态的函数GetStatus&#xff0c;函数的返回值类型是bool&#xff0c;在测试过程中发现&#xff0c;SDK返回的是false&#xff0c;但是业务方拿到的…...

蓝桥杯-蓝桥幼儿园(并查集)

并查集的核心思想 并查集主要由两个操作构成&#xff1a; Find&#xff1a;查找某个元素所在集合的根节点。并查集的特点是&#xff0c;每个元素都指向它自己的父节点&#xff0c;根节点的父节点指向它自己。查找过程中可以通过路径压缩来加速后续的查找操作&#xff0c;即将路…...

Ensemble of differential evolution variants(EDEV)

差分进化变体的集成1 在这项研究中&#xff0c;一个基于多种群的框架&#xff08;MPF&#xff09;被提议用于多个差分进化变体的集合。与PAP2不同&#xff0c;PAP通过时间预算分配策略和个体移民算子实现算法组合&#xff0c;MPF将整个种群划分为子种群&#xff0c;包括几个指…...

《AI开发工具和技能实战》第1集 Windows CMD 命令行操作指南:从基础到进阶

第1集 Windows CMD 命令行操作指南&#xff1a;从基础到进阶 在日常使用 Windows 系统时&#xff0c;命令提示符&#xff08;Command Prompt&#xff0c;简称 CMD&#xff09;是一个强大且灵活的工具。无论是文件管理、系统配置&#xff0c;还是网络诊断&#xff0c;CMD 都能提…...

实现一个拖拽排序组件:Vue 3 + TypeScript + Tailwind CSS

文章目录 一、项目背景与需求分析需求&#xff1a; 二、搭建基础项目1. 初始化 Vue 3 项目2. 安装 Tailwind CSS 三、设计拖拽排序组件1. 创建拖拽排序组件2. 说明&#xff1a; 四、完善样式与功能1. 样式调整2. 拖拽顺序更新 五、进一步优化与拓展1. 添加排序指示器2. 支持动态…...

哈希表(开散列)的实现

目录 引入 开散列的底层实现 哈希表的定义 哈希表的扩容 哈希表的插入 哈希表查找 哈希表的删除 引入 接上一篇&#xff0c;我们使用了闭散列的方法解决了哈希冲突&#xff0c;此篇文章将会使用开散列的方式解决哈希冲突&#xff0c;后面对unordered_set和unordered_map的…...

解决 Jetpack Compose 中 State 委托报错:“no method getValue“ 的终极指南

1. 必须的导入 ✅ import androidx.compose.runtime.getValue // 核心关键&#xff01;作用&#xff1a;为 State 类型添加 getValue() 操作符&#xff0c;使其支持 by 委托语法。为什么需要&#xff1a;Kotlin 的委托属性需要对象实现 getValue() 方法&#xff0c;Compose 通…...

我们如何思考AI创业投资

&#x1f3ac; Verdure陌矣&#xff1a;个人主页 &#x1f389; 个人专栏: 《C/C》 | 《转载or娱乐》 &#x1f33e; 种完麦子往南走&#xff0c; 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持&#xff01;❤️ 声明&#xff1a;本文作者转载&#xff0c;原文出自…...

1.ElasticSearch-入门基础操作

一、介绍 The Elastic Stack 包含ElasticSearch、Kibana、Beats、LogStash 这就是所说的ELK 能够安全可靠地获取任何来源、任何格式的数据&#xff0c;然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为ES&#xff0c;ES是一个开源的高扩展的分布式全文搜索引擎,是…...

2.ElasticSearch-Java API

一、基础使用 1.1 Maven 坐标 <dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</version></dependency><!--es的客户端--><dependenc…...

蓝桥杯-小明的彩灯(差分)

问题描述&#xff1a; 差分数组 1. 什么是差分数组&#xff1f; 差分数组 c 是原数组 a 的“差值表示”&#xff0c;其定义如下&#xff1a; c[0] a[0]c[i] a[i] - a[i-1] &#xff08;i ≥ 1&#xff09; 差分数组记录了相邻元素的差值。例如&#xff0c;原数组 a [1, …...

vim定位有问题的脚本/插件的一般方法

在使用vim的过程中可能会遇到一些报错或其他不符合预期的情况&#xff0c;本文介绍一些我自己常用的定位有问题脚本/插件的方法&#xff08;以下方法同样适用于neovim&#xff09; 执行了某些命令的情况 这种情况最简单&#xff0c;使用:h 命令&#xff0c;如果插件有文档的话…...

EasyExcel实现图片导出功能(记录)

背景&#xff1a;在旧系统的基础上&#xff0c;导出一些工单信息时&#xff0c;现需要新添加处理人的签名或者签章&#xff0c;这就涉及图片的上传、下载、写入等几个操作。 1、EasyExcel工具类 &#xff08;1&#xff09;支持下拉框的导出。 import com.alibaba.excel.Easy…...

PCL拟合空间3D圆周 fit3DCircle

PCL版本 1.15.0 main.cpp #include<vector> #include<iostream> #include <array> #include <string> #include <windows.h> #include <omp.h> #include <charconv> // C17 #include <cstdlib> #include<chrono> #in…...

ansible 实现达梦7数据库初始化数据脚本写入

关于使用ansible 对ARM版达梦7的k8s自动化部署参考我的这篇操作 ansible-playbook 写arm版达梦7数据库的一键安装脚本-CSDN博客文章浏览阅读303次&#xff0c;点赞5次&#xff0c;收藏3次。达梦官方提供镜像目前是dm8_x86 版本&#xff0c;因为众所周知的国产化方面的需求&…...

leetcode每日刷题

Day18 Title45.jump(跳跃游戏 II) 解法一&#xff1a;动态规划 依然分三步走&#xff1a; 1.状态方程 2.dp[i]的意义 3.边界条件及初始值 优先思考第二个问题&#xff1a; dp[i]表示到达i时需要的最少跳数 第一个问题&#xff1a; dp[ij]min(dp[i]1,dp[ij]) 为什么&am…...

Ubuntu安装Nginx

Ubuntu安装Nginx 由于 Ubuntu 的 apt 命令内置了 nginx 源&#xff0c;因此不用配置 apt 就可以直接下载安装&#xff1a; apt install nginx -y查看 nginx 是否启动&#xff1a; ps -ef |grep nginx如果没有启动则需要手动启动&#xff1a; nginx1. 配置Nginx 使用浏览器…...

Hadoop的序列化

&#xff08;一&#xff09;什么是序列化与反序列化 序列化就是把内存中的对象&#xff0c;转换成字节序列&#xff08;或其他数据传输协议&#xff09;以便于存储到磁盘&#xff08;持久化&#xff09;和网络传输。 反序列化就是将收到字节序列&#xff08;或其他数据传输协议…...

拼多多商品详情接口爬虫实战指南

一、引言 在电商运营和数据分析中&#xff0c;获取商品详情数据是至关重要的一步。拼多多作为国内知名的社交电商平台&#xff0c;提供了丰富的商品详情接口&#xff0c;允许开发者通过API获取商品的详细信息。本文将详细介绍如何通过爬虫技术结合拼多多商品详情接口&#xff…...

python网络爬虫

一、Python爬虫核心库 HTTP请求库 requests&#xff1a;简单易用的HTTP请求库&#xff0c;处理GET/POST请求。aiohttp&#xff1a;异步HTTP客户端&#xff0c;适合高并发场景。 HTML/XML解析库 BeautifulSoup&#xff1a;基于DOM树的解析库&#xff0c;支持多种解析器&#xf…...

java线程安全-单例模式-线程通信

首先看看单例模式的写法 首先我们先来回顾一下饿汉式单例模式&#xff1a; class Singleton{private static Singleton singletonnew Singleton();private Singleton(){}public static Singleton getInstrance(){return singleton;} } public class Test{public static void …...

ASP.NET中将 PasswordHasher 使用的 PBKDF2 算法替换为更现代的 Scrypt 或 Argon2 算法

相关博文&#xff1a; .Net实现SCrypt Hash加密_scrypt加密-CSDN博客 密钥派生算法介绍 及 PBKDF2(过时)&#xff1c;Bcrypt(开始淘汰)&#xff1c;Scrypt&#xff1c; Argon2(含Argon2d、Argon2i、Argon2id)简介-CSDN博客 浅述.Net中的Hash算法&#xff08;顺带对称、非对称…...

力扣刷题-热题100题-第34题(c++、python)

23. 合并 K 个升序链表 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/merge-k-sorted-lists/?envTypestudy-plan-v2&envIdtop-100-liked 顺序合并 合并两个有序链表作为子函数&#xff0c;创建一个空链表&#xff0c;然后对含有多个链表的数组进…...

【SpringCloud】从入门到精通【上】

今天主播我把黑马新版微服务课程MQ高级之前的内容都看完了&#xff0c;虽然在看视频的时候也记了笔记&#xff0c;但是看完之后还是忘得差不多了&#xff0c;所以打算写一篇博客再温习一下内容。 课程坐标:黑马程序员SpringCloud微服务开发与实战 微服务 认识单体架构 单体架…...

如何给路由器配置代理IP?更改网络ip地址时出现错误怎么解决?

在现代网络环境中&#xff0c;无论是家庭用户还是企业用户&#xff0c;经常需要配置路由器以实现网络访问的灵活性和匿名性。其中&#xff0c;给路由器配置代理IP是一个常见的需求&#xff0c;尤其是在需要绕过地域限制、增强网络安全或进行匿名浏览时。然而&#xff0c;配置过…...

程序化广告行业(70/89):ABTester系统助力落地页优化实践

程序化广告行业&#xff08;70/89&#xff09;&#xff1a;ABTester系统助力落地页优化实践 在程序化广告领域摸爬滚打多年&#xff0c;深知持续学习和知识共享的重要性。写这篇博客&#xff0c;就是希望能和大家一起深入探索程序化广告行业&#xff0c;共同学习、共同进步。今…...

远程监控系统项目里练习

1、项目目标 设备端&#xff1a; &#xff08;1&#xff09;基于stm32mp157开发板&#xff0c;裁剪linux5.10.10&#xff0c;完成ov5640摄像头移植&#xff1b; &#xff08;2&#xff09;完成用户层程序&#xff0c;完成对摄像头的控制及与云端服务的数据交互。 云端&…...

Spring Boot 通过全局配置去除字符串类型参数的前后空格

1、问题 避免前端输入的字符串参数两端包含空格&#xff0c;通过统一处理的方式&#xff0c;trim掉空格 2、实现方式 /*** 去除字符串类型参数的前后空格* author yanlei* since 2022-06-14*/ Configuration AutoConfigureAfter(WebMvcAutoConfiguration.class) public clas…...

设计模式 --- 观察者模式

设计模式 --- 观察者模式 什么是观察者模式观察者模式典型应用 --- C#中的事件使用观察者模式实现事件处理机制 什么是观察者模式 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;用于在对象之间建立一对多的依赖关系。当一个对象&#x…...

组播网络构建:IGMP、PIM 原理及应用实践

IP组播基础 组播基本架构 组播IP地址 一个组播IP地址并不是表示具体的某台主机&#xff0c;而是一组主机的集合&#xff0c;主机声明加入某组播组即标识自己需要接收目的地址为该组播地址的数据IP组播常见模型分为ASM模型和SSM模型ASM&#xff1a;成员接收任意源组播数据&…...

Java常见的23种设计模式

Java常见的23种设计模式 大家好&#xff0c;我是钢板兽&#xff01; 本文将系统梳理 Java 的设计模式&#xff0c;涵盖创建型、结构型和行为型三大类&#xff0c;结合定义、原理、优点、应用场景、示例代码&#xff0c;帮助你初步了解常见的23种设计模式。 一、设计模式分类…...

兔单B细胞单抗制备服务

1.兔单B细胞技术原理 兔单B细胞技术是近年来新发展的一类快速制备单克隆抗体的技术&#xff0c;是一种通过分离和单克隆化兔子体内的B细胞来制备单一来源的高特异性抗体的方法。基于流式细胞分选技术进行单B细胞单抗制备&#xff0c;利用每个B细胞只含有一个功能性重链可变区D…...