同向双指针合集(力扣)
283. 移动零
代码
class Solution {
public:void moveZeroes(vector<int>& nums) {int n = nums.size();int l = 0, r = 0;while(r < n){if(nums[r]){swap(nums[l],nums[r]);l++;}r++;}}
};
209. 长度最小的子数组
代码
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) { int n = nums.size();int ans = n + 1;int sum = 0;int left = 0, right = 0;for(right = 0; right < n; right++){sum += nums[right];while(sum - nums[left] >= target){sum -= nums[left];left++;}if(sum >= target) ans = min(ans, right - left + 1);}if(ans == n + 1) return 0;return ans;}
};
乘积小于 K 的子数组
代码
class Solution {
public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {int n = nums.size();if(k <= 1) return 0;//严格小于1的只有0和负整数,不成立int ans = 0, sum = 1, left = 0, right = 0;for(right = 0; right < n; right++){sum *= nums[right];while(sum >= k){sum /= nums[left];left++;}ans += right - left + 1;}return ans;}
};
3. 无重复字符的最长子串
代码
class Solution {
public:
//空格 常见字符最小的ascii码int cnt[330];int lengthOfLongestSubstring(string s) {int maxnum = 0, l = 0;for(int r = 0; r < s.size(); r++){if(cnt[s[r] - ' '] > 0){while(cnt[s[r] - ' '] > 0){cnt[s[l] - ' ']--;l++;}}maxnum = max(maxnum, r - l + 1);cnt[s[r] - ' ']++;}return maxnum;}
};
438. 找到字符串中所有字母异位词
代码
class Solution {
public:vector<int> findAnagrams(string s, string p) {int n = p.size();map<char,int>mp;for(auto i : p)mp[i]++;int left = 0;vector<int>ans;n = s.size();for(int right = 0 ; right < n; right++){mp[s[right]]--;while(mp[s[right]] < 0){mp[s[left]]++;left++;}if(right - left + 1 == p.size())ans.push_back(left);//因为子串是连续的,且上面处理了非子串的字符必定无法包含进去}return ans;}
};
76. 最小覆盖子串
代码
class Solution {
public:string minWindow(string s, string t) {map<char,int>cnt;int num = 0;for(auto i : t){if(!cnt[i]) num++;//记录字符串里不同字符的种类数cnt[i]++;}int count = 0, l = 0;string tp ="";int minnum = 100010;for(int r = 0; r < s.size();r++){cnt[s[r]]--;if(cnt[s[r]] == 0) count++;//记录已匹配的字符数if(count == num){while(cnt[s[l]] < 0){cnt[s[l]]++;l++;}if(r - l + 1 < minnum){minnum = r - l + 1;tp = s.substr(l,minnum);}cnt[s[l]]++;count--;l++;}}return tp;}
};
同向双指针,除了因题目而进行的一些条件的特判外,往往是
- l r 从起点出发,移动右指针r
- 移动的过程中根据题目条件对左指针进行移动,从而使得特殊情况也满足条件
- 根据题目要求的结果,对需要输出的最大长度/子串/起始点进行判断,因为特殊情况也提前被我们处理为了满足条件的情况,所以往往单独放在for循环体的最后进行统计即可。
相关文章:
同向双指针合集(力扣)
283. 移动零 代码 class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size();int l 0, r 0;while(r < n){if(nums[r]){swap(nums[l],nums[r]);l;}r;}} };209. 长度最小的子数组 代码 class Solution { public:int minSubArrayLen(i…...
G - Find a way
题目分析 1.双重bfs,遍历两个起点求最短路再计算总和即可 2.唯一的坑点在于对于一个KFC,两人中可能有一个到不了,所以还要对到不了的点距离做处理 #include <bits/stdc.h> using namespace std; using ll long long; const int N 220;struct pos…...
AJAX 02 案例、Bootstrap框架
AJAX 学习 AJAX 2 综合案例黑马 API01 图书管理Bootstrap 官网Bootstrap 弹框图书管理-渲染列表图书管理-添加图书图书管理-删除图书图书管理 - 编辑图书 02 图片上传03 更换图片04 个人信息设置信息渲染头像修改补充知识点:label扩大表单的范围 AJAX 2 综合案例 黑…...
SinoDB客户端工具dbaccess
类似Oracle的客户端工具sqlplus,Mysql的客户端工具mysql,SinoDB数据库也有自带的命令行客户端工具dbaccess。 dbaccess 识别用户输入,将用户输入的 SQL 语句打包发送给 SinoDB 数据库服务器执行,然后接收服务器的执行结果…...
postman学习
一、如何学习postman工具 1、下载和安装 Postman: 首先,从 Postman 官方网站(https://www.postman.com)下载并安装 Postman 应用程序。 2、了解基本概念: 在开始学习之前,了解一些基本概念,…...
【Linux】初识进程
目录 操作系统是什么 设计操作系统的目的 操作系统的定位 如何理解管理 管理的本质 管理的例子 计算机的管理概念图 操作系统管理逻辑的六字真言 系统调用和库函数的概念 进程 进程的概念 什么是PCB? PCB的主要内容 如何查看进程? 通过系统…...
有关Theano和PyTensor库
根据Github里面的介绍,PyTensor是源于Theano, Theano目前应该已经不再开发了,更新都是很多年前。 因此PyTensor在背景介绍中说 PyTensor is a fork of Aesara, which is a fork of Theano. Theano和PyTensor都是计算相关的库,可以…...
用 Open-Sora 高效创作视频,让创意触手可及
近年来,视频内容以爆炸式增长席卷了我们的生活。从短视频平台到直播带货,视频正成为人们获取信息和娱乐的主要方式。然而,传统视频制作流程往往耗时费力,对于普通用户来说门槛较高。 为了降低视频创作门槛,让更多人享…...
Git版本管理工具
前言: 本文记录学习使用 Git 版本管理工具的学习笔记,通过阅读参考链接中的博文和实际操作,快速的上手使用 Git 工具。 本文参考了引用链接博文里的内容。 引用: Git使用教程-配置管理 git reset详解-CSDN博客 3、Git使用不完全指南&am…...
微信小程序选择器picker的使用(省市区)
index.wxml picker中的 moderegion模式,这里同element中的select不同的是,不需要自己在绑定数据原,默认就包含了省市区的整体数据 <view class"section"><view class"section__title">省市区选择器</vie…...
std::shared_ptr与std::make_unique在类函数中的使用
在最近学习cartographer算法的时候,发现源码中大量的使用了std::shared_ptr与std::make_unique,对于这些东西之前不是很了解,为了更好的理解源代码,因此简单学习了一下这块内容的使用,在这里简单记个笔记。 std::shar…...
flutter 局部view更新,dialog更新进度,dialog更新
局部更新有好几种方法,本次使用的是 StatefulBuilder 定义 customState去更新对话框内容 import package:flutter/cupertino.dart; import package:flutter/material.dart;class ProgressDialog {final BuildContext context;BuildContext? dialogContext;double _…...
Lombok:@Delegate优化代码利器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、Delegate介绍 二、示例 三、使用场景 四、使用注意事项 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、Delegate介绍 Dele…...
【C语言】对称密码——栅栏的加密和解密
栅栏密码的原理: 栅栏层数n ①把将要传递的信息中的字母交替排成上下n行。 ②再将下面每一行字母排依次在上面一行的后边,从而形成一段密码。 ③例如:栅栏层数为2 明文:THE LONGEST DAY MUST HAVE AN END 加密: …...
一、rv1126开发之视频输入和视频编码
RV1126 H264/HEVC编码流程 一、RV1126编码的流程图: 二、每个代码模块详细讲解 2.1. VI模块的创建 VI模块的初始化:关键在于VI_CHN_ATTR_S结构体,这个结构体是VI设置的结构体。这个结构体的成员变量包括:pcVideoNode࿰…...
4.1 用源文件写汇编代码
汇编语言 1. 源程序 1.1 伪指令 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行伪指令没有对应的机器指令,最终不被CPU所执行伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作 1.2…...
Linux TCP参数——tcp_abort_on_overflow
文章目录 tcp_abort_on_overflow全连接队列是什么?如何改变队列大小?内核源码流程命令查看总结 tcp_abort_on_overflow 英文翻译理解:溢出中止 所以,溢出指的是什么溢出? Linux中会维护socket全连接队列,所…...
jupyter notebook设置代码提示方法
在命令行运行以下代码: pip install jupyter_contrib_nbextensionsjupyter contrib nbextension install --userpip install jupyter_nbextensions_configuratorjupyter nbextensions_configurator enable --user (有时安装第一行后会自动执行第二行&a…...
Linux 一点查询资料
Linux 一点查询资料 Linux101 Linux入门教程 鸟哥的Linux私房菜 Harley Hahn’s Guide to Unix and Linux 文件管理 - cd, pwd, mkdir, rmdir, ls, cp, rm, mv, tar 文件检索 - cat, more, less, head, tail, file, find 输入输出控制 - 重定向, 管道, tee, xargs 文本处理 -…...
如何快速搭建一个完整的vue2+element-ui的项目-二
技术细节-继续配置 提示:你以为这样就完了吗,其实还有很多东西需要我们自己手写的 例如: element-ui的配置样式重置配置src使用的配置elinst配置axios异步请求的二次封转配置语言国际化配置(这个看需求,我这里就不用配置了)vuex的配置mixins的配置开发环…...
Fast SAM C++推理部署实战:onnxruntime静态维度优化与性能调优
1. Fast SAM模型与onnxruntime部署基础 Fast SAM作为计算机视觉领域的高效分割模型,相比原版SAM模型实现了50倍的速度提升。这个提升主要来自两个关键设计:一是采用轻量化的CNN架构替代Transformer,二是仅使用SA-1B数据集的2%进行训练。在实际…...
3步完成微信聊天记录完整备份:WeChatExporter终极指南
3步完成微信聊天记录完整备份:WeChatExporter终极指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾为丢失珍贵的微信聊天记录而心痛?那…...
别再死记硬背了!用HTTPS握手过程,一次搞懂AES和RSA是怎么分工的
HTTPS握手过程:AES与RSA如何协同守护你的数据安全 每次在浏览器地址栏看到那个绿色小锁图标时,你是否好奇过背后的技术魔法?让我们跟随一次真实的HTTPS请求,看看加密算法们如何在幕后默契配合。这不是枯燥的理论课,而是…...
MAI-UI-8B功能测评:视觉理解+动作规划,到底有多好用?
MAI-UI-8B功能测评:视觉理解动作规划,到底有多好用? 1. 重新定义GUI智能体:不只是聊天机器人 MAI-UI-8B的出现彻底改变了我们对AI智能体的认知。与市面上大多数只能进行文字对话的模型不同,它真正实现了"看得见…...
用例建模实战:从需求分析到系统设计的完整指南
1. 用例建模基础:从需求到设计的桥梁 我第一次接触用例建模是在一个电商系统重构项目中。当时团队花了大量时间讨论功能需求,却总是陷入"这个功能该不该做"的争论。直到我们引入用例建模技术,整个需求分析过程突然变得清晰有序。 用…...
文墨共鸣大模型Agent智能体开发入门:构建自主任务执行系统
文墨共鸣大模型Agent智能体开发入门:构建自主任务执行系统 你是不是也经常被各种重复、琐碎的任务搞得焦头烂额?比如,每天要手动整理几十份报告,或者需要不停地在不同网站间切换查询信息。有没有一种方法,能让一个“数…...
d2s-editor终极指南:免费开源暗黑破坏神2存档编辑器完整教程
d2s-editor终极指南:免费开源暗黑破坏神2存档编辑器完整教程 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经想要调整暗黑破坏神2角色的属性,但又不愿意花费大量时间刷装备?或者你的…...
如何解锁Adobe CC全系列软件:面向设计师的通用补丁工具指南
如何解锁Adobe CC全系列软件:面向设计师的通用补丁工具指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP是一款专为Adobe Creative Cloud系…...
2025最权威的六大AI写作网站横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 有这样一种工具,它是基于自然语言处理以及学术知识图谱的智能写作辅助系统&#…...
5步搞定通义千问3-Reranker-0.6B部署:快速提升搜索相关性
5步搞定通义千问3-Reranker-0.6B部署:快速提升搜索相关性 1. 为什么你需要这个轻量级重排序模型 想象一下,你在电商平台搜索"无线蓝牙耳机",系统返回了100个结果。前10个里可能有3个是充电线,2个是耳机套,…...
