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

coding ability 展开第四幕(滑动指针——巩固篇)超详细!!!!

在这里插入图片描述

文章目录

  • 前言
  • 水果成篮
    • 思路
  • 找到字符串中所有字母异位词
    • 思路
  • 串联所有单词的子串
    • 思路
  • 最小覆盖子串
    • 思路
  • 总结

前言

本专栏上一篇博客,带着大家从认识滑动窗口到慢慢熟悉
相信大家对滑动窗口已经有了大概的认识
其实主要就是抓住——一段连续的区间
今天来学习一些滑动窗口进阶的题目
fellow me

水果成篮

在这里插入图片描述

思路

一开始看到这个题目,一段连续的区间,想到了滑动窗口
然后就想着怎么维护窗口,每次更新到新的水果种类就要,开始对left++,然后处理数据
其实是有点麻烦的,但是经过半个多小时的调试,最后还是ac了
思路:每次更新两个种类的水果,x,y,如果下一个水果的种类不相符合,就更新新的x,y
这个时候 right - 1 和 right 所对应的水果就是新的两种,然后就是处理从 left 到 right - 1这段区间
符合条件的情况, 也就是 从right - 1 一直往前走,到与 right - 1 所对应种类不同的水果,然后再更新结果
在反复进窗口,维护窗口,出窗口

代码如下 :

class Solution
{
public:int totalFruit(vector<int>& fruits){int ans = 0;int n = fruits.size();int x = fruits[0], y = fruits[0];if (n == 1)return 1;int left = 0, right = 1;for (; right < n; right++){if (fruits[right] != x && fruits[right] != y)  // 和前面确定的水果种类{y = fruits[right - 1];		//  更新新的水果种类  x = fruits[right];int i = right - 1;if (i != left)  // left  到  right - 1  区间  {while (fruits[i] == y && i > left)  //  i一直靠近left  直到种类不同{i--;}if (i == left && y != fruits[left])  //  更新  left 的指向left++;else if (i != left)left = i + 1;}}ans = max(ans, right - left + 1);//    更新结果}return ans;}
};

后面又想到了一种思路:
就是用哈希来统计种类数量,哈希相对于前面的那种方法还是简单的
就是把两个种类的水果放入哈希表,然后right++ 水果进窗口,如果哈希表的水果种类大于2
就从左侧 left 开始逐步出窗口,直到哈希表种类等于2,然后更新结果

代码如下:

class Solution
{
public:int totalFruit(vector<int>& f){unordered_map<int, int> hash; // 统计窗口内出现了多少种水果int ret = 0;for (int left = 0, right = 0; right < f.size(); right++){hash[f[right]]++; // 进窗口while (hash.size() > 2) // 判断{// 出窗口hash[f[left]]--;if (hash[f[left]] == 0)hash.erase(f[left]);left++;}ret = max(ret, right - left + 1);}return ret;}
};

找到字符串中所有字母异位词

在这里插入图片描述

思路

看到又是一段连续的区间,就想到了滑动窗口
这一题 p 的异位词,说白了就是包含了 p 的所有字母,不管先后顺序
想到上一题用哈希优化的爽快,这题好像也可以用哈希来解
把 p 中字符都用哈希统计频次,然后在遍历 s 时,进窗口,维护窗口,出窗口
每次进入窗口,就用哈希统计出现次数,只要没有到达次数上限,就进窗口
如果进入窗口的字符数量大于了 p 的长度,维护窗口从left开始往右开始出窗口
每一次统计进入窗口的数量时,都比较一下 p 的字符个数,如果进入窗口的字符个数等于 p的个数大小相等,就更新结果

代码如下:

class Solution
{
public:vector<int> findAnagrams(string s, string p){vector<int> ret;int hash1[26] = { 0 }; // 统计字符串 p 中每个字符出现的个数for(auto ch : p) hash1[ch - 'a']++;int hash2[26] = { 0 }; // 统计窗口里面的每一个字符出现的个数int m = p.size();for(int left = 0, right = 0, count = 0; right < s.size(); right++){char in = s[right];// 进窗口 + 维护 countif(++hash2[in - 'a'] <= hash1[in - 'a']) count++;if(right - left + 1 > m) // 判断{char out = s[left++];// 出窗口 + 维护 countif(hash2[out - 'a']-- <= hash1[out - 'a']) count--;}// 更新结果if(count == m) ret.push_back(left);}return ret;}
};

下面就上难度了嗷~~~~

串联所有单词的子串

在这里插入图片描述

思路

这个题目看起来很难,其实一点也不简单,看到困难的标签就让人望而生畏
但其实也没有想象的那么难,慢慢抽丝剥茧,其实也能拿下
在这里插入图片描述
看到这里,其实就想到了上一题的那个字母异位词,本题是说所有单词都包含,然后不管顺序
上一题是——所有字母都包含,然后不管顺序,我们不妨试试上一题的思路呢
首先要解决的就是把单词抽象变成字符,我们可以定义一个 string,映射 int 的 哈希表,这个问题就迎刃而解了
下一个问题就是怎么才能知道哪个是单词的开头字母呢??又怎么在 s 中遍历单词然后进窗口呢??
在这里插入图片描述
我又看到了这个条件,雪中送炭,所有单词长度相等,那岂不是起飞了,就让 right 每次遍历 += 单词长度就好了
这些都处理好了,最后一个问题就是,我怎么知道哪个字符是单词的第一个字母,错乱了怎么办,那不是gg
我们只需要在外面套一层for循环,从0到单词的长度,这段区间都做一次滑动窗口就好啦
核心问题都解决了,剩下的就是一些细节处理问题了
话不多说,这些都解决了,开始执行代码:

class Solution 
{
public:vector<int> findSubstring(string s, vector<string>& words) {vector<int> ret;unordered_map<string, int> hash1; // 保存 words 里面所有单词的频次for (auto& c : words)hash1[c]++;int len = words[0].size(), m = words.size();for (int i = 0; i < len; i++) // 执行 len 次{unordered_map<string, int> hash2; // 维护窗口内单词的频次for (int left = i, right = i, count = 0; right + len <= s.size();right += len) {// 进窗口 + 维护 countstring in = s.substr(right, len);hash2[in]++;if (hash1.count(in) && hash2[in] <= hash1[in])count++;// 判断if (right - left + 1 > len * m) {// 出窗口 + 维护 countstring out = s.substr(left, len);if (hash1.count(out) && hash2[out] <= hash1[out])count--;hash2[out]--;left += len;}// 更新结果if (count == m)ret.push_back(left);}}return ret;}
};

其实hard题也是由一个一个小问题糅合起来的,解决核心问题,其实也没有那么难
慢慢啃下来,还是有成就感的 come on

最小覆盖子串

在这里插入图片描述

思路

又又又是一段连续的区间,来吧来吧,滑动窗口,滑动窗口
在这里插入图片描述
这道题不是上一题的恰好涵盖所有字符了,要返回的是最小子串,也就是能包含其他的
但是经过前面题目的磨砺,我感觉好像自己有点门道了
思路:用哈希1统计字符串 t 的每一个字符的频次,还有种类
构造一个新的哈希2,然后遍历 s 字符串,每个字符都统计到新的哈希表
当这个字符的频次和 哈希1中统计的字符频次相等时,种类数++
种类数和哈希1种类数相等时维护窗口,更新结果
大致思路就差不多是这样,来执行代码吧

class Solution 
{
public:string minWindow(string s, string t) {int hash1[128] = {0}; // 统计字符串 t 中每一个字符的频次int kinds = 0;        // 统计有效字符有多少种for (auto ch : t)if (hash1[ch]++ == 0)kinds++;int hash2[128] = {0}; // 统计窗口内每个字符的频次int minlen = INT_MAX, begin = -1;for (int left = 0, right = 0, count = 0; right < s.size(); right++) {char in = s[right];if (++hash2[in] == hash1[in])count++;           // 进窗口 + 维护 countwhile (count == kinds) // 判断条件{if (right - left + 1 < minlen) // 更新结果{minlen = right - left + 1;begin = left;}char out = s[left++];if (hash2[out]-- == hash1[out])count--; // 出窗口 + 维护 count}}if (begin == -1)return "";elsereturn s.substr(begin, minlen);}
};

这个困难也拿下啦,滑动窗口和哈希一起用感觉有点爽,绝佳组合

总结

滑动窗口的核心在于维护一段连续区间,通过哈希表优化统计与比较过程。面对不同问题需灵活调整:
哈希表记录元素频次,快速判断窗口合法性(如水果种类、异位词)
双指针动态伸缩窗口,确保时间复杂度为O(N)
多层循环处理定长元素(如单词串联),覆盖所有起点情况
种类与频次匹配时更新结果,最小子串问题需全局记录最优解
掌握滑动窗口+哈希的组合,能高效解决子串、子数组等连续区间问题,突破Hard瓶颈

今天的内容就到这里啦,不要走开,小编持续更新中~~~~

在这里插入图片描述

相关文章:

coding ability 展开第四幕(滑动指针——巩固篇)超详细!!!!

文章目录 前言水果成篮思路 找到字符串中所有字母异位词思路 串联所有单词的子串思路 最小覆盖子串思路 总结 前言 本专栏上一篇博客&#xff0c;带着大家从认识滑动窗口到慢慢熟悉 相信大家对滑动窗口已经有了大概的认识 其实主要就是抓住——一段连续的区间 今天来学习一些滑…...

【Linux我做主】基础命令完全指南上篇

Linux基础命令完全指南【上篇】 Linux基础命令完全指南github地址前言命令行操作的引入Linux文件系统树形结构的根文件系统绝对路径和相对路径适用场景Linux目录下的隐藏文件 基本指令目录和文件相关1. ls2. cd和pwdcdpwd 3. touch4. mkdir5. cp6. mv移动目录时覆盖写入的两种特…...

101.在 Vue 3 + OpenLayers 使用 declutter 避免文字标签重叠

1. 前言 在使用 OpenLayers 进行地图开发时&#xff0c;我们经常需要在地图上添加点、线、区域等图形&#xff0c;并给它们附加文字标签。但当地图上的标注较多时&#xff0c;文字标签可能会发生重叠&#xff0c;导致用户无法清晰地查看地图信息。 幸运的是&#xff0c;OpenL…...

面试vue2开发时怎么加载编译速度(webpack)

可以输入命令获取默认 webpack 设置 vue inspect > set.js 1.使用缓存 configureWebpack: {cache: {type: filesystem, // 使用文件系统缓存类型buildDependencies: {config: [__filename] // 缓存依赖&#xff0c;例如webpack配置文件路径}}}, 2.启用 vue-loader (测试明…...

大模型推理后JSON数据后处理

大模型推理后JSON数据后处理 flyfish LLM 通常指的是 Large Language Model&#xff0c;也就是大语言模型&#xff0c;针对 JSON格式的输出&#xff0c;可以在大模型推理前、推理中、推理后进行处理&#xff0c;这里是在推理后进行处理。 针对模型输出结果&#xff0c;可采用结…...

面试总结:2024前端面试题

前几天写了一篇对面试官的吐槽&#xff0c;今天来总结一下最近面试的一些题目。题目不分具体公司了&#xff0c;毕竟题目的重复率不会特别高&#xff0c;就多做准备吧。 技术面还是离不开“八股文”&#xff0c;个人不喜欢也没办法&#xff0c;硬着头皮上&#xff0c;下面分几个…...

剑指 Offer II 083. 没有重复元素集合的全排列

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20083.%20%E6%B2%A1%E6%9C%89%E9%87%8D%E5%A4%8D%E5%85%83%E7%B4%A0%E9%9B%86%E5%90%88%E7%9A%84%E5%85%A8%E6%8E%92%E5%88%97/README.md 剑指 Offer II 083. 没…...

SFT数据处理部分的思考

SFT数据及处理的业内共识 1&#xff0e;prompt的质量和多样性远重要于数据量级&#xff0c;微调一个 30 b 量级的base model只需要 10 w 量级的数据即可 参考&#xff1a;《LIMA&#xff1a;Less Is More for Alignment》 2&#xff0e;合成数据很重要&#xff01;一般需要通过…...

c++三级(枚举问题)

菲波那契数列(2) 题目描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1&#xff0c;接下来每个数都等于前面2个数之和。 给出一个正整数a&#xff0c;要求菲波那契数列中第a个数对1000取模的结果是多少。 输入格式 第1行是测试数据的组数n&#xff0c;后面跟着n行…...

vb编程有哪些相关的IDE开发工具vb.net,Basic语言?

在编程领域&#xff0c;VB 系列拥有丰富多样的 IDE 开发工具&#xff0c;为不同需求的开发者提供了广泛的选择&#xff0c;以下为你详细介绍&#xff1a; 兼容 VB6 源码的开发工具 twinbasic&#xff1a;属于 VB7 系列&#xff0c;它几乎能 100% 兼容 VB6 源码&#xff0c;这…...

XSS跨站脚本攻击

1、什么是XSS攻击 XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击&#xff0c;为了避免与css层叠样式表名称冲突&#xff0c;所以改为xss&#xff0c;是最常见的web应用程序安全漏洞之一。它指的是恶意攻击者往web页面里插入恶意html代码&#xff08;JavaS…...

Uniapp 开发 App 端上架用户隐私协议实现指南

文章目录 引言一、为什么需要用户隐私协议&#xff1f;二、Uniapp 中实现用户隐私协议的步骤2.1 编写隐私协议内容2.2 在 Uniapp 中集成隐私协议2.3 DCloud数据采集说明2.4 配置方式3.1 Apple App Store3.2 Google Play Store 四、常见问题与解决方案4.1 隐私协议内容不完整4.2…...

mapbox高阶,结合threejs(threebox)添加extrusion挤出几何体,并添加侧面窗户贴图和楼顶贴图

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️threebox extrusion挤出几何体二、🍀…...

【Pycharm】Pycharm无法复制粘贴,提示系统剪贴板不可用

我也没有用vim的插件&#xff0c;检查了本地和ubutnu上都没有。区别是我是远程到ubutnu的pycharm&#xff0c;我本地直接控制windowes的pycharm是没问题的。现象是可以从外部复制到pycharm反之则不行。 ctl c ctlv 以及右键 都不行 参考&#xff1a;Pycharm无法复制粘贴&…...

Java泛型程序设计使用方法

Java泛型程序设计是Java语言中一项强大的特性&#xff0c;它允许你编写更加通用和类型安全的代码。以下是Java泛型程序设计的使用方法和技巧&#xff1a; 1. 基本概念 泛型类&#xff1a;可以定义一个类&#xff0c;其中的某些类型是参数化的。 public class Box<T> {pr…...

【STM32】USART串口收发HEX数据包收发文本数据包

有关串口知识参考&#xff1a;【STM32】USART串口协议&串口外设-学习笔记-CSDN博客 HEX模式/十六进制模式/二进制模式&#xff1a;以原始数据的形式显示文本模式/字符模式&#xff1a;以原始数据编码后的形式显示 参考上面文章查看ASCII编码表 HEX数据包 ​ 包头包尾和…...

Keil5下载教程及安装教程(附安装包)

文章目录 前言一、Keil5下载教程二、Keil5安装教程三、Keil5授权教程 前言 本教程详细的介绍了Keil5下载教程及安装教程&#xff0c;就像搭积木一样简单易懂&#xff0c;让你轻松迈出开发的第一步。 一、Keil5下载教程 相比旧版本&#xff0c;Keil MDK v5.40 有显著升级。新增…...

快速上手网络通信 -- Qt Network应用开发

概述 在现代应用程序开发中,网络通信是不可或缺的一部分,无论是客户端与服务器之间的数据交换,还是设备间的通信,都需要一个高效且可靠的网络库。Qt提供了强大的QT Network模块,支持多种网络协议和操作,如HTTP、FTP、TCP/IP等,本文将详细介绍如何使用Qt Network模块进行…...

Linux-进程概念

本节学习重点&#xff1a; • 认识冯诺依曼系统 • 操作系统概念与定位 • 深⼊理解进程概念&#xff0c;了解PCB • 学习进程状态&#xff0c;学会创建进程&#xff0c;掌握僵⼫进程和孤⼉进程&#xff0c;及其形成原因和危害 • 了解进程调度&#xff0c;Linux进程优先级&am…...

【LeetCode】622、设计循环队列

【LeetCode】622、设计循环队列 文章目录 一、数组实现循环队列1.1 队列 二、多语言解法 一、数组实现循环队列 1.1 队列 注意&#xff1a;题目要求了 Front() 和 Rear()&#xff0c;当 IsEmpty() 时返回 -1 // go type MyCircularQueue struct {l intr intlen intcap intar…...

基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统源码+运行

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。源码 功能包括&#xff1a;医生管理、科室管理、护士管理、住院管理、药品管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.com/geee…...

2023南京理工大学计算机复试上机真题

2023南京理工大学计算机复试上机真题 2023南京理工大学计算机复试机试真题 历年南京理工大学计算机复试上机真题 在线评测&#xff1a;传送门&#xff1a;pgcode.cn 括号匹配二 题目描述 苗苗今天刚刚学会使用括号&#xff0c;不过他分不清小括号&#xff0c;中括号&#…...

开发、科研、日常办公工具汇总(自用,持续更新)

主要记录汇总一下自己平常会用到的网站工具&#xff0c;方便查阅。 update&#xff1a;2025/2/11&#xff08;开发网站补一下&#xff09; update&#xff1a;2025/2/21&#xff08;补充一些AI工具&#xff0c;刚好在做AI视频相关工作&#xff09; update&#xff1a;2025/3/7&…...

python3GUI--模仿安卓桌面 By:PyQt5(附下载地址)

文章目录 一&#xff0e;前言二&#xff0e;展示1.主界面2.设置页面3.更换了壁纸且切换桌面页面 三&#xff0e;项目分享1.项目代码结构2.组件代码分享 四&#xff0e;总结 文件大小25.5M&#xff0c;欢迎下载体验&#xff01;点击下载 一&#xff0e;前言 今天给大家推荐我用…...

STM32CubeIDE 下载与安装教程(以 1.18.0 版本为例)

STM32CubeIDE 下载与安装教程&#xff08;以 1.18.0 版本为例&#xff09; 软件介绍 STM32CubeIDE 是 STMicroelectronics 提供的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为 STM32 微控制器系列设计。它融合了 STM32CubeMX 和 Eclipse 的强大功能&#xf…...

酒店宾馆IPTV数字电视系统:创新宾客体验,引领智慧服务新潮流

酒店宾馆IPTV数字电视系统&#xff1a;创新宾客体验&#xff0c;引领智慧服务新潮流 北京海特伟业科技有限公司任洪卓于2025年3月15日发布 随着智慧酒店的不断发展&#xff0c;宾客对于酒店内的娱乐和信息服务需求日益多样化&#xff0c;传统的电视服务已难以满足现代宾客的高…...

蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

一、0握手问题 - 蓝桥云课 算法代码&#xff1a; #include <iostream> using namespace std; int main() {int sum0;for(int i49;i>7;i--)sumi;cout<<sum<<endl;return 0; } 直接暴力&#xff0c;题意很清晰&#xff0c;累加即可。 二、0小球反弹 - 蓝…...

MobileNet家族:从v1到v4的架构演进与发展历程

MobileNet 是一个专为移动设备和嵌入式系统设计的轻量化卷积神经网络&#xff08;CNN&#xff09;家族&#xff0c;旨在在资源受限的环境中实现高效的图像分类、对象检测和语义分割等任务。自 2017 年首次推出以来&#xff0c;MobileNet 经历了从 v1 到 v4 的多次迭代&#xff…...

PyTorch PINN实战:用深度学习求解微分方程

在人工智能与计算数学的交汇点&#xff0c;物理信息神经网络&#xff08;Physics-Informed Neural Networks&#xff0c;PINN&#xff09;正引领着一场求解微分方程的革命。传统上&#xff0c;微分方程是描述自然现象和工程问题中各种关系的重要工具&#xff0c;但其求解往往依…...

LRU(最近最少使用)算法实现

核心思想与基本思路 LRU&#xff08;Least Recently Used&#xff09;算法是一种缓存淘汰策略&#xff0c;其核心思想是淘汰最近最少使用的数据。 最近使用原则&#xff1a;最近被访问的数据在未来被访问的概率更高&#xff0c;因此应保留在缓存中。淘汰机制&#xff1a;当缓…...

【大模型实战】利用ms-swift微调框架对QwQ-32B推理模型进行微调

1. 背景介绍 之前我们在《大模型训练/微调的一些经验分享》、《利用DeepSeek-R1数据微调蒸馏ChatGLM32B让大模型具备思考能力》中做了相关模型微调的介绍。目前在基座大模型能力还没有达到足够牛的情况下&#xff0c;大模型微调在商业化、垂直领域应用依然是不可或缺&#xff0…...

蓝桥杯省赛真题C++B组-小球反弹

一、题目 有一长方形&#xff0c;长为 343720 单位长度&#xff0c;宽为 233333 单位长度。在其内部左上角顶点有一小球(无视其体积)&#xff0c;其初速度如图所示且保持运动速率不变&#xff0c;分解到长宽两个方向上的速率之比为 dx:dy 15:17。小球碰到长方形的边框时会发生…...

Web3到底解决了什么问题?

文章目录 Web3到底解决了什么问题?1. 数据所有权与控制权的转移2. 打破中心化平台的垄断3. 信任与透明度的重构4. 价值分配机制的革新5. 互操作性与开放生态6.Web3 的局限性&#xff08;附加说明&#xff09; Web3到底解决了什么问题? 1. 数据所有权与控制权的转移 问题&am…...

基于CSV构建轻量级数据库:SQL与Excel操作的双模实践

基于CSV构建轻量级数据库&#xff1a;SQL与Excel操作的双模实践 引言&#xff1a;当CSV遇到SQL和Excel CSV&#xff08;逗号分隔值&#xff09;作为最通用的数据存储格式之一&#xff0c;凭借其纯文本可读性和跨平台兼容性&#xff0c;被广泛应用于数据交换和简单存储场景。但…...

【深度学习】多源物料融合算法(一):量纲对齐常见方法

目录 一、引言 二、量纲对齐常见方法 2.1 Z-score标准化Sigmoid归一化 2.2 Min-Max 归一化 2.3 Rank Transformation 2.4 Log Transformation 2.5 Robust Scaling 3、总结 一、引言 类似抖音、快手、小红书等产品的信息流推荐业务&#xff0c;主要通过信息流广告、信…...

STM32-SPI通信外设

目录 一&#xff1a;SPI外设简介 SPI框图​编辑 SPI逻辑 ​编辑 主模式全双工连续传输 ​编辑 非连续传输 二&#xff1a;硬件SPI读写W25Q64 1.接线&#xff1a; 2. 代码 SPI外设的初始化 生成时序 一&#xff1a;SPI外设简介 STM32内部集成了硬件SPI收发电路&#…...

告别XML模板的繁琐!Word文档导出,easy!

word模板导出 最近项目中有个功能&#xff0c;导出月报&#xff0c;发现同事使用了docx格式模板,感觉比之前转成xml的简单多了&#xff0c;这边记录下使用方法。 xml方式导出word,模板太复杂了 资料 poi-tl 一个基于Apache POI的Word模板引擎&#xff0c;也是一个免费开源的Jav…...

LeetCode 3280 将日期转换为二进制表示

【算法实战】日期转二进制&#xff1a;两种解法的思路与优化&#xff08;附代码解析&#xff09; 一、问题描述 给定一个yyyy-mm-dd格式的日期字符串&#xff0c;要求将年、月、日分别转为无前导零的二进制&#xff0c;并保持year-month-day格式。 示例&#xff1a;输入2025-…...

基于SpringBoot的“考研互助平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“考研互助平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统整体功能图 局部E-R图 系统首页界面 系统注册…...

在线Doc/Docx转换为PDF格式 超快速转换的一款办公软件 文档快速转换 在线转换免费转换办公软件

小白工具https://www.xiaobaitool.net/files/word-pdf/提供了一项非常实用的在线服务——将Doc或Docx格式的文档快速转换为PDF格式。这项服务不仅操作简单&#xff0c;而且转换效率高&#xff0c;非常适合需要频繁处理文档转换的用户。 服务特点&#xff1a; 批量转换&#x…...

3.14-进程间通信

进程间通信 IPC 进程间通信的原理&#xff0c;借助进程之间使用同一个内核&#xff0c;借助内核&#xff0c;传递数据。 进程间通信的方法 管道&#xff1a;最简单。信号&#xff1a;开销小。mmap映射&#xff1a;速度最快&#xff0c;非血缘关系之间。socket&#xff08;本…...

大模型AI多智能体系统(Multi-Agent Systems, MAS)技术介绍

一、多智能体系统的定义与核心概念 多智能体系统(MAS)是由多个具备自主决策能力的智能体(Agent)组成的分布式系统。每个智能体能够感知环境、执行动作,并通过协作或竞争实现个体或集体目标。其核心特征包括: 自主性:智能体无需外部指令即可独立决策(如MetaGPT中的角色…...

web3区块链

Web3 是指下一代互联网&#xff0c;也被称为“去中心化互联网”或“区块链互联网”。它是基于区块链技术构建的&#xff0c;旨在创建一个更加开放、透明和用户主导的网络生态系统。以下是关于 Web3 的一些关键点&#xff1a; ### 1. **核心概念** - **去中心化**&#xff1…...

Alembic 实战指南:快速入门到FastAPI 集成

一、快速开始 1.1 简介 Alembic 是一个基于 SQLAlchemy 的数据库迁移工具&#xff0c;主要用于管理数据库模式&#xff08;Schema&#xff09;的变更&#xff0c;例如新增表、修改字段、删除索引等&#xff0c;确保数据库结构与应用程序的 ORM 模型保持一致。 Alembic 通过版…...

【视频】V4L2、ffmpeg、OpenCV中对YUV的定义

1、常见的YUV格式 1.1 YUV420 每像素16位 IMC1:YYYYYYYY VV-- UU– IMC3:YYYYYYYY UU-- VV– 每像素12位 I420: YYYYYYYY UU VV =>YUV420P YV12: YYYYYYYY VV UU =>YUV420P NV12: YYYYYYYY UV UV =>YUV420SP(最受欢迎格式) NV21: YYYYYYYY VU VU =>YUV420SP…...

ubuntu20.04装nv驱动的一些坑

**1.一定要去bios里面关闭secure boot&#xff0c;否则驱动程序需要签名&#xff0c;安装了的驱动无法被识别加载 2.假如没有关闭secure boot然后装了驱动&#xff0c;然后再去关闭secure boot&#xff0c;可能会导致进入不了ubuntu的情况 此时&#xff0c;先恢复secure boot&…...

【SpringMVC】常用注解:@SessionAttributes

1.作用 用于多次执行控制器方法间的参数共享 2.属性 value&#xff1a;用于指定存入的属性名称 type&#xff1a;用于指定存入的数据类型 3.示例 先写JSP代码 <a href"demo1/putMethod">存入 SessionAttribute</a><br><a href"demo…...

阿里云企业邮箱出现故障怎么处理?

阿里云企业邮箱出现故障怎么处理&#xff1f; 以下是处理阿里云企业邮箱故障的详细分步指南&#xff0c;帮助您快速定位问题并恢复邮箱正常使用&#xff1a; 一、初步排查&#xff1a;确认故障范围与现象 确定影响范围 全体用户无法使用 → 可能为阿里云服务端故障或网络中断。…...

C# Enumerable类 之 集合操作

总目录 前言 在 C# 中&#xff0c;System.Linq.Enumerable 类是 LINQ&#xff08;Language Integrated Query&#xff09;的核心组成部分&#xff0c;它提供了一系列静态方法&#xff0c;用于操作实现了 IEnumerable 接口的集合。通过这些方法&#xff0c;我们可以轻松地对集合…...

LVGL移植到6818开发板

一、移植步骤 1.lv_config.h 配置文件启动 framebuffer 2、lv_config.h 配置文件关闭SDL 2.修改main.c 去掉SDL输入设备 3.修改Makefile 文件启动交叉编译 去掉警告参数 去掉SDL库 4.交叉编译代码 make clean #清空 ⭐ 必须要清空一次再编译&#xff01; 因为修改了 lv_con…...