经典面试题之滑动窗口专题

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len = INT32_MAX;// 总和int sum = 0;int start = 0; // 起点for(int i = 0; i< nums.size(); i++) {sum += nums[i];while(sum >= target) {int len = i-start+1;if(len < min_len ) {min_len = len;} sum -= nums[start++];} }if(min_len == INT32_MAX ) {return 0; } else {return min_len;}}
};
3. 无重复字符的最长子串

class Solution {
public:int lengthOfLongestSubstring(string s) {// 长度int str_size = s.size();if(str_size == 0) {return 0;}int max_len = 0;int left = 0;unordered_set<char> str; // 用来存储 字符for(int i = 0; i< str_size ; i++ ){// 如果没有找到 该字符while(str.find(s[i]) != str.end()) {str.erase(s[left]);left++;}max_len = max(max_len, i- left + 1);// 插入str.insert(s[i]);}return max_len;}
};
76 最小覆盖子串

class Solution {
public:unordered_map<char,int> tstr, sstr;bool check() {for(auto tchar : tstr) {if(tchar.second > sstr[tchar.first]) {return false;}}return true;}string minWindow(string s, string t) {int n1 = s.size();int n2 = t.size();if(n1 < n2) return "";int len = INT_MAX;int ans_left = -1; // 最小窗口的左边界// 构建哈希表for(auto tchar : t) {tstr[tchar]++;}int left = 0;int right= 0;for(int right = 0; right < n1; right++) {sstr[s[right]]++; // 添加// 说明找到 该字符if(tstr.find(s[right]) != tstr.end()) {// 这里是对比一下 sstr 以及 tstr while(check() && left <= right) {// 长度变化if(len > right-left +1) {// 标记 左边界ans_left = left;len = right - left + 1; }// 去掉sstr[s[left]]--;// 左边界移动left++;}}}if(ans_left == -1) return "";else return s.substr(ans_left, len);}
};
收获
- unordered_map 的基本使用
- 滑动窗口模版
- auto 基本使用
定义一个字符串的个数哈希表
unordered_map<char, int> sstr, tstr;
简单访问
sstr[s[i]] 这个访问就是对应的个数
int main() {unordered_map<char, int> myMap;unordered_map<char, int> myMap2;myMap['a'] = 1;myMap['b'] = 2;myMap['c'] = 3;myMap2['a'] = 3;myMap2['b'] = 1;myMap2['c'] = 2;// 打印 unordered_map 中的元素for (auto pair : myMap) {cout << pair.first << ": " << pair.second << endl;cout<<myMap2[pair.first]<<endl;cout<<myMap[pair.first]<<endl;}
}
相关文章:
经典面试题之滑动窗口专题
class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len INT32_MAX;// 总和int sum 0;int start 0; // 起点for(int i 0; i< nums.size(); i) {sum nums[i];while(sum > targe…...
网络编程入门之UDP编程
欢迎各位帅哥美女来捧场,本文是介绍UDP网络编程。在这里,你会见到最详细的教程;细致到每一行代码,每一个api的由来和使用它的目的等。 目录 1.UDP相关API 1.1.两个类 1.2.两个类中的方法 2.UDP编程 2.1.大体框架 2.2.内容构…...
【AI源码】音频和图片生成你的数字人口播
带表情、带头部运动。适合做一些名人短视频鸡汤口播 类似此前微软和阿里emo那个方案 1、介绍: 能够通过单张静态肖像和输入音频生成具有自然流动运动的谈话视频,它采用了一种普遍的运动表示方法,能够捕捉广泛的面部动态,包括细微的表情和头部运动。 2、框架概述 (1)该…...
JAVA_3
JAVA_3 一、JAVA类和对象二、JAVA内存如何运转三、JAVA-constructer 一、JAVA类和对象 类包含三个内容: 1.属性field,静态特征(数据) 2.方法method,负责动态行为操作数据 3.构造器constructer,负责初始化对象…...
java项目之汽车资讯网站源码(springboot+mysql+vue)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的汽车资讯网站。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 汽车资讯网站的主要使用者管…...
C语言中的静态库和动态库的制作和使用
什么是库文件 单一模型 将程序中所有功能全部实现于一个单一的源文件内部。 编译时间长,不易于维护和升级,不易于协作开发。 分离模型 将程序中的不同的功能模块划分到不同的源文件中。 缩短编译时间,易于维护和升级,易于协…...
【MySQL 数据宝典】【事务锁】- 002 事务控制的演进
一、事务处理思路 1.1 排队 排队处理是事务管理最简单的方法,就是完全顺序执行所有事务的数据库操作,不需要加锁,简单的说就是全局排队。序列化执行所有的事务单元,数据库某个时刻只处理一个事务操作,特点是强一致性…...
如何远程操作服务器中的Python编译器并将运行结果返回到Pycharm
文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…...
C++入门指南(上)
目录 编辑 一、祖师爷画像 二、什么是C 三、C发展史 四、C在工作领域的应用 1. 操作系统以及大型系统软件开发 2. 服务器端开发 3. 游戏开发 4. 嵌入式和物联网领域 5. 数字图像处理 6. 人工智能 7. 分布式应用 五、如何快速上手C 一、祖师爷画像 本贾尼斯特劳斯…...
Python 全栈系列244 nginx upstream 负载均衡 踩坑日记
说明 最初是因为租用算力机(Python 全栈系列242 踩坑记录:租用算力机完成任务),所以想着做一个负载均衡,然后多开一些服务,把配置写在nginx里面就好了。 一开始租用了一个3080起了一个服务,后来觉得速度不够快,再起了…...
数据链路层——计算机网络学习笔记三
使用点对点信道的数据链路层 前言: 1.数据链路层的重要性:网络中的主机、路由器都必须实现数据连输层; 2.数据链路层中使用的信道: 点对点信道:这种信道是一对一的通信方式; 广播信道:使用一对多…...
leetcode——反转链表
206. 反转链表 - 力扣(LeetCode) 思路:创建三个指针n1,n2,n3,遍历原链表,通过三者之间的关系将链表反转。下面给出图示: 下面给出题解代码: typedef struct ListNode ListNode; struct List…...
类加载机制(双亲委派机制)
文章目录 JVM的作用是什么双亲委派机制加载流程 JVM的作用是什么 我们运行Java程序时,要安装JDK,JDK包含JVM,不同环境的JDK都是不同的。 Java 代码在编译后会形成 class 的字节码文件,该字节码文件通过 JVM 解释器,生…...
nss刷题(2)
1、[NSSCTF 2022 Spring Recruit]ezgame 打开题目是一个游戏界面 发现是有分数的,猜测分数达到某个之后可以获得flag,查看源码看一下 看到末尾显示分数超过65后显示flag 在js中找到了一个score,将他的值改为大于65的数后随意玩一次就可以得到flag同时&a…...
2024 年“泰迪杯”A 题:生产线的故障自动识别与人员配置--第四题(用遗传算法解决生产线排班问题--matlab代码)
问题背景: 问题四:根据实际情况,现需要扩大生产规模,将生产线每天的运行时间从 8 小时增加 到 24 小时不间断生产,考虑生产线与操作人员的搭配,制定最佳的操作人员排班方案,要求满足以下条件&am…...
资产公物仓管理系统|实现国有资产智能化管理
1、项目背景 资产公物仓管理系统(智仓库DW-S201)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 项目设计原则 方案对公物仓资…...
实用的 Google Chrome 命令
以下是一些实用的 Google Chrome 命令: chrome://version - 显示 Chrome 浏览器的详细信息,包括版本号、用户代理和命令行参数等。 chrome://flags - 打开 Chrome 实验性功能页面,可以启用或禁用各种实验性功能。请注意,这些功能…...
动态规划算法:⼦数组、⼦串系列(数组中连续的⼀段)
例题一 解法(动态规划): 算法思路: 1. 状态表⽰: 对于线性 dp ,我们可以⽤「经验 题⽬要求」来定义状态表⽰: i. 以某个位置为结尾,巴拉巴拉; ii. 以某个位置…...
2010年认证杯SPSSPRO杯数学建模D题(第一阶段)服务网点的分布全过程文档及程序
2010年认证杯SPSSPRO杯数学建模 D题 服务网点的分布 原题再现: 服务网点、通讯基站的设置,都存在如何设置较少的站点,获得较大效益的问题。通讯基站的覆盖范围一般是圆形的,而消防、快餐、快递服务则受到道路情况和到达时间的限…...
docker-compose 安装ZLMediaKit,ffmpeg、VLC实现推流并播放
1、目录(创建conf文件夹,777权限) 二、docker-compose.yml version: "3.9"services:zlmediakit:image: zlmediakit/zlmediakit:mastercontainer_name: zlmediakitprivileged: true# 指定加载配置# command: /opt/media/bin/MediaS…...
AI写论文实用宝典,4款AI论文生成工具搞定各类论文写作!
在2025年的学术写作智能化浪潮中,越来越多的人开始依赖AI写论文工具进行创作。尽管这些工具的使用越来越普遍,但在撰写硕士、博士论文等较长篇幅的学术文章时,许多AI论文写作工具往往陷入缺乏理论深度和逻辑性不强的问题。普通的AI写专著或AI…...
OpenRGB:一键终结RGB灯光混乱,开源免费的多品牌设备统一控制方案
OpenRGB:一键终结RGB灯光混乱,开源免费的多品牌设备统一控制方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgra…...
2026年必看:专业婚恋软件推荐,找到真爱不迷路
在当今快节奏的社会中,越来越多的高知青年面临着交友难、脱单难的问题。传统的社交方式往往难以满足他们对高质量伴侣的需求,而专业的婚恋软件则成为他们寻找真爱的重要途径。本文将重点推荐一款备受好评的婚恋软件——即恋App,并结合具体数据…...
Python并发革命进行时:GIL移除后你必须掌握的5种内存序模型(x86/ARM/RISC-V实测对比)
第一章:Python无锁GIL环境下的并发模型架构总览传统CPython解释器受全局解释器锁(GIL)制约,无法真正实现多线程CPU并行。而“无锁GIL环境”并非指移除GIL本身,而是指在GIL被主动释放、绕过或由替代运行时(如…...
别再只会用A4988了!用STM32+L298N手撸42步进电机细分驱动(附256细分算法)
从零构建STM32L298N的256细分步进电机驱动系统 在创客和嵌入式开发领域,步进电机控制一直是个既基础又充满挑战的课题。市面上常见的A4988、DRV8825等驱动模块虽然方便,但当项目需要更高精度、更灵活控制时,这些现成方案往往显得力不从心。本…...
别再花钱买云API了!手把手教你用Docker+Ollama在本地免费跑通Strix渗透测试
零成本打造企业级渗透测试环境:DockerOllama本地化实战指南 当安全团队每月收到云服务商五位数的API账单时,当关键测试任务因网络抖动被迫中断时,越来越多的技术决策者开始重新审视渗透测试的基础架构。本文将揭示如何用消费级硬件构建媲美商…...
解锁AMD锐龙隐藏性能:SMUDebugTool深度调校实战指南
解锁AMD锐龙隐藏性能:SMUDebugTool深度调校实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…...
SpringBoot整合MQTT实战:手把手教你实现设备动态连接与主题订阅管理(附完整源码)
SpringBoot整合MQTT实战:动态连接与主题订阅管理的工程化实现 在物联网项目开发中,设备连接管理和消息路由的灵活性往往是系统设计的难点。想象这样一个场景:你的智慧农业系统需要随时接入新部署的土壤传感器,气象站设备可能因网…...
从GTS-800到GTS-400:手把手教你移植C#点胶机程序到不同固高控制卡
从GTS-800到GTS-400:工业点胶系统迁移实战指南 当生产线上的点胶机控制卡需要从GTS-800更换为GTS-400时,许多工程师会发现"使用方法类似"这个说法背后隐藏着大量细节差异。去年我们团队完成了一个医疗设备点胶系统的迁移项目,原计划…...
