滑动窗口讲解(c基础)
- 滑动窗口的基本概念
滑动窗口是一种高效处理线性数据结构(如数组、字符串)的算法技巧。它就像是一个可移动的 “框”,框住数据结构中的一部分元素,通过不断地移动这个 “框”(即滑动窗口),对框内的元素进行分析和处理,以解决各种与子序列、子数组相关的问题。
- 滑动窗口的组成部分
- 窗口边界:
- 通常由两个指针来定义窗口的边界,例如
left
和right
。left
指针指向窗口的左边界(起始位置),right
指针指向窗口的右边界(结束位置)。通过移动这两个指针,可以控制窗口的大小和位置。
- 通常由两个指针来定义窗口的边界,例如
- 窗口大小:
- 可以是固定大小,也可以是根据特定规则动态变化的。在固定大小的滑动窗口中,窗口大小在整个算法过程中保持不变;而在动态大小的滑动窗口中,窗口大小会根据问题的要求和窗口内元素的性质进行调整。
- 窗口内容:
- 即窗口边界所包含的元素集合。对这些元素可以进行各种操作,如求和、计数、检查是否满足某种条件等。
- 滑动窗口的操作步骤(以一般情况为例)
-
初始化窗口:
- 首先要确定窗口的初始位置和大小。这可能涉及到将
left
和right
指针初始化为合适的位置,以及初始化一些用于记录窗口相关信息的变量,如窗口内元素的和、计数等。 - 例如,在固定大小滑动窗口求数组中固定长度子数组的最大和的问题中,初始窗口的和是通过一个循环计算前
k
个元素的和得到的,此时left = 0
,right = k - 1
。
- 首先要确定窗口的初始位置和大小。这可能涉及到将
-
滑动窗口:
- 扩展窗口(右移
right
指针):- 通常,在窗口尚未完全遍历数据结构时,需要不断地向右移动
right
指针来扩大窗口。在这个过程中,需要更新窗口内元素的相关信息,如将新进入窗口的元素计入总和、计数等操作。 - 例如,在寻找包含特定字符集合的最小子串的问题中,当
right
指针右移时,要将新进入窗口的字符在窗口字符计数数组中的计数加 1,并检查是否满足包含所有目标字符的条件。
- 通常,在窗口尚未完全遍历数据结构时,需要不断地向右移动
- 收缩窗口(左移
left
指针):- 当窗口满足某些条件(如已经包含了足够的元素、达到了某个阈值等)时,可能需要收缩窗口,即左移
left
指针。在左移过程中,要相应地更新窗口内元素的信息,如将移出窗口的元素从总和、计数中减去。 - 例如,在最小覆盖子串问题中,当窗口已经包含了目标字符串中的所有字符时,尝试左移
left
指针来缩小窗口,同时更新窗口状态,直到窗口不再满足包含所有目标字符的条件为止。
- 当窗口满足某些条件(如已经包含了足够的元素、达到了某个阈值等)时,可能需要收缩窗口,即左移
- 扩展窗口(右移
-
更新结果(根据问题要求):
- 在窗口滑动的过程中,根据问题的具体要求,可能需要不断地更新结果。例如,在求子数组最大和的问题中,每次更新窗口和后,需要比较当前窗口和与最大和,若当前窗口和更大,则更新最大和;在求最小覆盖子串的问题中,每次收缩窗口时,需要比较当前窗口长度与最小窗口长度,若当前窗口长度更小且满足条件,则更新最小窗口长度和起始位置。
-
终止条件:
- 滑动窗口的操作会在满足一定条件时停止。最常见的情况是
right
指针到达数据结构的末尾。例如,在遍历完整个数组或者字符串后,滑动窗口的过程结束。
- 滑动窗口的操作会在满足一定条件时停止。最常见的情况是
- 示例 - 固定大小滑动窗口(求数组中固定长度子数组的最大和)详细讲解
- 代码回顾:
-
展开过程
-
收起
plaintext
复制
- **初始化窗口(第1 - 7行)**:- 首先,函数检查数组`nums`的大小`numsSize`是否小于给定的子数组长度`k`。如果是,那么不存在长度为`k`的子数组,直接返回0。- 接着,通过一个循环(第4 - 6行)计算初始窗口(前`k`个元素)的和,将其存储在`window_sum`变量中。同时,将`max_sum`也初始化为这个窗口和的值,因为此时它是目前找到的最大和(因为还没有开始滑动窗口)。
- **滑动窗口(第8 - 13行)**:- 从第`k`个元素开始(索引为`k - 1`),进入`for`循环(第8 - 13行),这个循环控制窗口的滑动。在每次循环中,通过`window_sum = window_sum - nums[i - k] + nums[i]`来更新窗口内元素的和。- 具体来说,`window_sum - nums[i - k]`这部分是减去窗口最左边滑出的元素(因为窗口向右滑动了一个位置,最左边的元素就离开了窗口)。例如,当`i = k`时,`nums[i - k]`就是初始窗口的第一个元素`nums[0]`。然后`+ nums[i]`这部分是添加新进入窗口的元素,此时`nums[i]`就是窗口向右滑动一个位置后新进入窗口的元素。
- **更新结果(第11 - 12行)**:- 在每次更新窗口和之后,比较`window_sum`和`max_sum`的大小。如果`window_sum`大于`max_sum`,就将`max_sum`更新为`window_sum`。这样,在整个窗口滑动过程中,`max_sum`始终记录着到目前为止长度为`k`的子数组的最大和。
- **终止条件(第8行循环条件)**:- 循环条件是`i < numsSize`,这意味着只要窗口的右端点(`right`指针对应的位置,即`i`)还没有超出数组的范围,窗口就会持续向右滑动。当`right`指针到达数组末尾时,循环结束,此时`max_sum`中存储的就是数组中长度为`k`的子数组的最大和,最后将其返回。5. **示例 - 动态大小滑动窗口(寻找包含特定字符集合的最小子串)详细讲解**- **代码回顾(简化部分初始化代码)**:- ```cchar *min_window(char *s, char *t) {int need[128] = {0};int window[128] = {0};int left = 0, right = 0;int match_count = 0;int min_len = strlen(s) + 1;int min_left = 0;// 统计t中字符出现的次数for (int i = 0; i < strlen(t); i++) {need[t[i]]++;}while (right < strlen(s)) {window[s[right]]++;if (window[s[right]] == need[s[right]]) {match_count++;}while (match_count == strlen(t)) {if (right - left + 1 < min_len) {min_len = right - left + 1;min_left = left;}window[s[left]]--;if (window[s[left]] < need[s[left]] {match_count--;}left++;}right++;}if (min_len <= strlen(s)) {char *result = (char *)malloc((min_len + 1) * sizeof(char));strncpy(result, s + min_left, min_len);result[min_len] = '\0';return result;} else {return "";}}
- 初始化窗口(第 1 - 7 行和第 10 - 11 行):
- 定义了两个数组
need
和window
,分别用于记录目标字符串t
中字符出现的次数和滑动窗口内字符出现的次数。这两个数组的大小为 128,足以覆盖 ASCII 码表中的常见字符。 - 初始化了窗口边界指针
left
和right
为 0,表示窗口初始位置在字符串s
的开头。同时初始化了match_count
为 0,用于记录窗口内已经匹配上t
中字符的个数;min_len
为strlen(s) + 1
,用于记录最小子串的长度,初始值设为一个较大的值;min_left
为 0,用于记录最小子串的起始位置。 - 通过一个循环(第 10 - 11 行)统计字符串
t
中字符出现的次数,存储在need
数组中。
- 定义了两个数组
- 滑动窗口(第 12 - 22 行):
- 扩展窗口(第 13 - 15 行):
- 在主
while
循环(第 12 - 22 行)中,首先不断右移right
指针(第 17 行)来扩大窗口。每次将新进入窗口的字符在window
数组中的计数加 1(第 14 行)。 - 然后检查窗口内该字符的计数是否等于
need
数组中该字符的计数,如果是,则将match_count
加 1(第 15 行),表示又匹配上了一个t
中的字符。
- 在主
- 收缩窗口(第 16 - 21 行):
- 当
match_count
等于t
的长度时,说明窗口内已经包含了t
中所有的字符,此时进入内层while
循环(第 16 - 21 行)开始收缩窗口。 - 在收缩窗口过程中,首先检查当前窗口长度(
right - left + 1
)是否小于min_len
,如果是,则更新min_len
和min_left
(第 18 - 19 行),记录下当前更小的子串。 - 接着,将窗口左边界
left
指向的字符在window
数组中的计数减 1(第 20 行)。如果此时窗口内该字符的计数小于need
数组中该字符的计数,那么match_count
减 1(第 21 行),表示窗口不再包含t
中所有的字符,停止收缩窗口。
- 当
- 扩展窗口(第 13 - 15 行):
- 更新结果(第 18 - 19 行):
- 在收缩窗口阶段,当窗口长度变小且仍然满足包含所有目标字符的条件时,更新
min_len
和min_left
,这两个变量始终记录着到目前为止找到的最小子串的长度和起始位置。
- 在收缩窗口阶段,当窗口长度变小且仍然满足包含所有目标字符的条件时,更新
- 终止条件(第 12 行循环条件):
- 外层
while
循环的条件是right < strlen(s)
,这意味着只要窗口的右端点(right
指针对应的位置)还没有超出字符串s
的范围,窗口就会持续滑动。当right
指针到达字符串末尾时,循环结束。
- 外层
- 返回结果(第 23 - 28 行):
- 最后,根据
min_len
的值来返回结果。如果min_len
小于等于s
的长度,说明找到了满足条件的最小子串,通过malloc
分配足够的内存来存储这个子串,使用strncpy
函数将子串复制到新分配的内存中,并添加字符串结束符'\0'
,然后返回这个结果。如果min_len
大于s
的长度,说明没有找到满足条件的子串,返回空字符串。
- 最后,根据
相关文章:
滑动窗口讲解(c基础)
滑动窗口的基本概念 滑动窗口是一种高效处理线性数据结构(如数组、字符串)的算法技巧。它就像是一个可移动的 “框”,框住数据结构中的一部分元素,通过不断地移动这个 “框”(即滑动窗口),对框内…...
Flink的双流join理解
如何保证Flink双流Join准确性和及时性、除了窗口join还存在哪些实现方式、究竟如何回答才能完全打动面试官呢。。你将在文中找到答案。 1 引子 1.1 数据库SQL中的JOIN 我们先来看看数据库SQL中的JOIN操作。如下所示的订单查询SQL,通过将订单表的id和订单详情表ord…...
springboot341+vue校园求职招聘系统设计和实现pf(论文+源码)_kaic
毕 业 设 计(论 文) 校园求职招聘系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,…...
dmdba用户资源限制ulimit -a 部分配置未生效
dmdba用户资源限制ulimit -a 部分配置未生效 1 环境介绍2 数据库实例日志报错2.1 mpp01 实例日志报错2.2 mpp02 实例日志报错 3 mpp02 服务器资源限制情况4 关闭SELinux 问题解决4.1 临时关闭 SELinux4.2 永久关闭 SELinux 5 达梦数据库学习使用列表 1 环境介绍 Cpu x86 Os Ce…...
kafka-clients之CommonClientConfigs
CommonClientConfigs是kafka-clients库中一个包含Kafka通用配置项的类,它定义了Kafka Producer、Consumer、Admin等客户端共享的配置。以下是其中的主要配置项及其含义: 1. bootstrap.servers 类型:List<String>说明:Kafk…...
支持多种快充协议的取电芯片,支持最大功率140W
前言 在快节奏的现代生活中,人们对于小家电的依赖日益加深,而随之而来的充电问题也日益凸显。传统的充电方式往往受限于电压、电流的限制,难以满足不同设备对电力的多样化需求。而PD快充协议的诞生,则为这一难题提供了全新的解决…...
《Vue零基础入门教程》第十四课:列表渲染
往期内容 《Vue零基础入门教程》第六课:基本选项 《Vue零基础入门教程》第八课:模板语法 《Vue零基础入门教程》第九课:插值语法细节 《Vue零基础入门教程》第十课:属性绑定指令 《Vue零基础入门教程》第十一课:事…...
Linux系统 进程
Linux系统 进程 进程私有地址空间用户模式和内核模式上下文切换 进程控制进程控制函数获取进程 ID创建和终止进程回收子进程让进程休眠加载并运行程序 系统调用错误处理利用fork和execve运行程序 进程 异常是允许操作系统内核提供进程(process)概念的基…...
文件具有selinux标签如下 system_u:object_r:httpd_sys_content:s0:c3 解释一下每段的含义?
文件具有selinux标签如下 system_u:object_r:httpd_sys_content:s0:c3 解释一下每段的含义? SELinux标签通常由四个部分组成,分别用于定义文件的上下文、访问控制策略以及系统安全性。针对你提供的标签:system_u:object_r:httpd_sys_content:s0:c3&…...
对偶分解算法详解及其Python实现
目录 对偶分解算法详解及其实现第一部分:对偶分解算法概述1.1 什么是对偶分解算法1.2 应用场景1.3 算法优点第二部分:对偶分解算法的数学推导2.1 问题形式2.2 对偶问题2.3 算法框架第三部分:对偶分解算法的Python实现第四部分:案例1——支持向量机中的对偶分解(策略模式)…...
Linux之web服务器
一、web 服务器简介 1.www 简介 www 是全球信息广播的意思,上网即使用 www 来查询信息,它结合多种多媒体,通过超链接以 Internet 传递信息。上网时,网站提供数据,客户端用浏览器解析数据。 www 所用协议为 HTTP&…...
十二、Pod的扩缩容-手动/自动-HPA
在实际生产系统中,经常会遇到某个服务需要扩容的场景,也可能会遇到由于资源紧张或者工作负载降低而需要减少服务实例数量的场景。此时可以利用Deployment/RC的Scale机制来完成这些工作。 Kubernetes对Pod的扩缩容操作提供了手动和自动两种模式,手动模式通过运行kubectl sca…...
RabbitMQ高级特性:TTL、死信队列与延迟队列
RabbitMQ高级特性:TTL、死信队列与延迟队列 RabbitMQ作为一款开源的消息代理软件,广泛应用于分布式系统中,用于实现消息的异步传递和系统的解耦。其强大的高级特性,包括TTL(Time-To-Live)、死信队列&#…...
UPLOAD LABS | UPLOAD LABS 靶场初识
关注这个靶场的其它相关笔记:UPLOAD LABS —— 靶场笔记合集-CSDN博客 0x01:UPLOAD LABS 靶场简介 UPLOAD LABS 靶场是一个专门用于学习文件上传漏洞攻击和防御的靶场。它提供了一系列文件上传漏洞的实验环境,用于帮助用户了解文件上传漏洞的…...
杰发科技AC7803——不同晶振频率时钟的配置
计算公式 PLL_POSDIV [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62] PLL_PREDIV_1 1 2 4 USE_XTAL 24M SYSCLK_FREQ 64M SYSCLK_DIVIDER 1 VCO USE_XTAL*…...
cocos creator 触摸事件官方案例
cocos creator 触摸事件官方案例 1、官方示例; 2、对官方示例的总结: (1)介绍了鼠标事件和触摸事件的类型,这里主要关注的是在移动端和PC端都可以触发的触摸事件。 (2)节点事件的派发&#…...
浅谈人工智能之基于容器云进行图生视频大模型搭建
浅谈人工智能之基于容器云进行图生视频大模型搭建 根据之前我们所讲过的内容: 文生图 文生视频 我们继续讲解图生视频大模型搭建。 引言 随着深度学习技术的不断发展,图生视频(image-to-video)大模型成为了计算机视觉和自然语言…...
【爬虫框架:feapder,管理系统 feaplat】
github:https://github.com/Boris-code/feapder 爬虫管理系统 feaplat:http://feapder.com/#/feapder_platform/feaplat 爬虫在线工具库 :http://www.spidertools.cn :https://www.kgtools.cn/1、feapder 简介 对于学习 Python…...
txt地图格式处理
1、txt地图格式 [属性描述] 坐标系2000国家大地坐标系 几度分带3 投影类型高斯克吕格 计量单位米 带号38 精度0.001 转换参数,,,,,, [地块坐标] 5,475.888,1,测试地块1,面,J50G077061,公路用地,地下, J1,1,113.22222222222222,23.129111721551794 J2,1,113.2722314…...
【0346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)
1. Startup Process 进程 postmaster 初始化过程中, 在进入 ServerLoop() 函数之前,会先通过调用 StartChildProcess() 函数来开启辅助进程,这些进程的目的主要用来完成数据库的 XLOG 相关处理。 如: 核实 pg_wal 和 pg_wal/archive_status 文件是否存在Postgres先前是否发…...
蜜罐攻击网络渗透工具推荐
推荐一批侧重蜜罐攻击的网络渗透测试工具: Glastopf – 主要用于监测网络安全事件的工具。以蜜罐形式可以模拟数千个漏洞,以收集针对Web应用程序的攻击数据。 Kippo – 中交互性的SSH 蜜罐攻击器,用于记录暴力破解攻击。 Kojoney – 一种低…...
26页PDF | 数据中台能力框架及评估体系解读(限免下载)
一、前言 这份报告详细解读了数据中台的发展历程、核心概念、能力框架及成熟度评估体系。它从阿里巴巴的“大中台,小前台”战略出发,探讨了数据中台如何通过整合企业内部的数据资源和能力,加速业务迭代、降低成本,并推动业务增长…...
AI开发 - GPT之魂 用Python 演示chatGPT的自注意力机制 - 机器学习
自注意力机制(Self-Attention)就是让模型在处理每个词时,学会“关注重点”,而不是平均地对每个词一视同仁。这种机制让 GPT 能更聪明地理解句子的上下文和语义之间的关系。 自注意力机制是 GPT 的核心,它帮助模型在理解…...
Vue CLI 提供了哪些功能
前言 Vue CLI 为开发者提供了一整套强大且灵活的工具链,极大地提升了开发效率和代码质量。无论是创建项目、管理依赖、配置环境,还是进行测试和优化,Vue CLI 都能为你提供全面的支持。本文将深入探讨 Vue CLI 所提供的各种功能,并…...
网络爬虫的原理
网络爬虫就是根据网络,把上面的相关信息比如源代码以字符串的形式爬取下来,并且涉及到网站下的一系列网站。 DNS域名解析服务器可以通过ping域名/ip来测试是否连通,dns可以记录网站访问次数,从而评估出网站的使用权重,…...
02_Django路由Router
二、Django路由Router 在实际开发过程中,一个Django 项目会包含很多的 app ,这时候如果我们只在主路由里进行配置就会显得杂乱无章,所以通常会在每个 app 里,创建各自的urls.py路由模块,然后从根路由出发,…...
计算属性和监听属性
Vue.js 中的计算属性与监听属性 Vue.js 是一个流行的前端框架,它提供了许多强大的特性来简化 Web 应用的开发。其中,计算属性(Computed Properties)和监听属性(Watchers)是两个非常重要的概念,…...
JAVA项目-------医院挂号系统
1,项目目的 1、科室管理:新增科室,删除科室(如果有医生在,则不能删除该科室),修改科室。 2、医生管理:录入医生信息,以及科室信息。修改医生信息(主要是修改…...
《Learn Three.js》学习(3)光源
前言: WebGL本身不支持光源,不使用three.js,则需使用着色程序来模拟光源。 学习大纲: Three.js中的光源 特定光源的使用时机 如何调整和配置所有光源的行为 如何创建镜头光晕 光源表 基础光源:THRER.AmbientLight、THERE.Point…...
npm error code ETIMEDOUT 简单排查
今天突然没到一个仓库的ius问题。改完之后想发布npm包 出现下面的场景 npm addUser npm adduser npm notice Log in on https://registry.npmjs.org/ Create your account at: https://www.npmjs.com/login?next/login/cli/12596c8b-ba4a-4763-8a97-215087d380c4 Press ENTER…...
Flink高可用配置(HA)
从Flink架构中我们可以看到,JobManager这个组件非常重要,是中心协调器,负责任务调度和资源管理。默认情况下,每个Flink集群只有一个JobManager实例。这会产生单点故障(SPOF):如果JobManager崩溃,则无法提交新程序,正在运行的程序也会失败。通过JobManager的高可用性,…...
VITE+VUE3+TS环境搭建
前言(与搭建项目无关): 可以安装一个node管理工具,比如nvm,这样可以顺畅的切换vue2和vue3项目,以免出现项目跑不起来的窘境。我使用的nvm,当前node 22.11.0 目录 搭建项目 添加状态管理库&…...
windows上安装使用kubectl访问容器内服务
以云服务商提供的容器服务为例: 登录云服务,选择容器服务选择集群管理,选择集群概览点击kubeconfig按钮,进入说明页面官网下载kubectl 1、到 Kubernetes 版本变更 页面,查看 kubernetes 已发行版本,确认需要安装的 kubectl 版本。 2、kubectl 版本和集群的 kubernetes 版…...
软件工程第14章小测
单项选择题 第1题 定义类A和B Class A{ public B methodA(){...} } Class B{ public void methodB(){...} } 下面代码中的耦合是()。 Class Client{ public static void main(String args){ A oa new A(); a.methodA().methodB(); } } …...
HarmonyOS4+NEXT星河版入门与项目实战(23)------组件转场动画
文章目录 1、控件图解2、案例实现1、代码实现2、代码解释3、实现效果4、总结1、控件图解 这里我们用一张完整的图来汇整 组件转场动画的用法格式、属性和事件,如下所示: 2、案例实现 这里我们对上一节小鱼游戏进行改造,让小鱼在游戏开始的时候增加一个转场动画,让小鱼自…...
word转pdf
在线xml格式化: 在线 XML 格式化 | 菜鸟工具 Java使用FreeMarker自动生成Word文档(带图片和表单) Java使用FreeMarker自动生成Word文档(带图片和表单)_freemarker word模板-CSDN博客 将word转pdf JAVA 使用aspose…...
@bytemd/vue掘金markdown插件预览内容有误
vue项目使用bytemd/vue 来预览字符串格式的markdown内容,总会多出如图的一段代码, 请问有没有大佬知道为什么? 很急,求教!!!!!...
产品知识培训全面指南
在当今竞争激烈的市场环境中,产品知识已成为企业成功的关键因素。特别是对于软件即服务(SaaS)公司而言,产品的复杂性要求团队对产品有深入的了解,以便有效地与潜在客户沟通并促成交易。本指南将深入探讨产品知识培训的…...
VSCode修改资源管理器文件目录树缩进(VSCode目录结构、目录缩进、文件目录外观)workbench.tree.indent
文章目录 方法点击左下角小齿轮点击设置点击工作台,点击外观,找到Tree: Indent设置目录树的缩进 方法 点击左下角小齿轮 点击设置 点击工作台,点击外观,找到Tree: Indent设置目录树的缩进 "workbench.tree.indent"默认…...
周鸿祎再次“创业”,盯上百度
周鸿祎特地拍了部短剧来推广的新产品,终于上线了。 11月27日晚间,360正式发布多模态内容创作引擎“纳米搜索”。 作为当前AI应用最红的赛道之一,AI搜索已经有腾讯、秘塔、商汤、抖音等公司入局。传统搜索老大百度也在发力。竞争不妨碍有搜索…...
夜神模拟器+安卓7安装burpsuite系统证书
夜神模拟器安卓7安装burpsuite系统证书 安卓 7.0 以上安装 CA 证书: 安卓 5 所安装的 burp 证书是安装到系统根目录下的,从 Android 7.0 开始,系统不再信任用户 CA 证书,所以需要把 CA 证书安装到系统 CA 证书目录。 效果: 导出…...
TavilySearchResults报错
报错 pydantic_core._pydantic_core.ValidationError: 1 validation error for TavilySearchAPIWrapper Value error, Did not find tavily_api_key, please add an environment variable TAVILY_API_KEY which contains it, or pass tavily_api_key as a named parameter. …...
avcodec_alloc_context3,avcodec_open2,avcodec_free_context,avcodec_close
avcodec_alloc_context3 是创建编解码器上下文,需要使用 avcodec_free_context释放 需要使用avcodec_free_context 释放 /** * Allocate an AVCodecContext and set its fields to default values. The * resulting struct should be freed with avcodec_free_co…...
HttpClient
是apache旗下的项目 可以用来提供高效的 最新的 功能丰富的 支持HTTP协议的客户端编程工具包,并且支持HTTP协议最新的版本和建议 核心API HttpClient HttpClientsCloseableHttpClientHttpGetHttpPost 发送请求步骤 创建HttpClient对象创建Http请求对象调用H…...
Flink解决延迟数据问题
总结: 水印:对于迟到数据不长 allowedLateness: 迟到时间很长 侧道输出:对于迟到时间特别长 对于延迟数据的理解: 水印机制(水位线、watermark)机制可以帮助我们在短期延迟下,允许乱序数据的到来。 这个机制很好的…...
基于matlab程序实现人脸识别
1.人脸识别流程 1.1.1基本原理 基于YCbCr颜色空间的肤色模型进行肤色分割。在YCbCr色彩空间内对肤色进行了建模发现,肤色聚类区域在Cb—Cr子平面上的投影将缩减,与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。…...
ESP32 wifi smartConfig 配网时密码错误导致一直死循环问题解决
项目场景 硬件:ESP32-LyraT-Mini V1.2开发板,使用的是ESP32-WROVER-E 模组。 程序:基于smart_config示例程序测试 问题描述 烧录程序后,debug打印“smartconfig_example: Scan done”信息后,打开手机app“EspTouch”进行配网,如果密码输入正确,正常的debug信息如下:…...
串口通讯介绍
详情学习 12. 串口通讯与终端设备 — [野火]嵌入式Linux基础与应用开发实战指南——基于i.MX6ULL开发板 文档 (embedfire.com) 问题 DB9接口 RS232,RS485 标准DB9接口(串口通信线标准接口)_485接口接线方法9针-CSDN博客 DB9 各引脚定义 1 DCD 载波检测 2 RX 接收数据…...
出于安全考虑,你的平板电脑已设置为禁止安装来源不明的应用,对于这种工业的安卓平板,应该怎么解决问题呢
在一些工业安卓平板上,出于安全考虑,通常会禁止安装来自未知来源的应用程序。这是为了防止恶意软件或不可信的应用程序被安装到设备上。为了绕过这个限制并安装来自未知来源的应用程序,你可以按照以下步骤进行操作: 1. 启用“未知…...
Java技术复习提升 15IO流
先给各位读者致歉 笔者因身体抱恙 未能及时更新 以后会按时更新 和大家一起学习探究~ 第15章 IO流 15.1 文件 文件就是保存数据的地方 文件流 15.2 常用文件操作 创建文件对象构造器和方法 import org.junit.Test;import java.io.File; import java.io.IOException;publ…...