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

双指针算法-day14(分组循环)

1.最长奇偶子数组

题目

解析

  • 分组循环模板:

  •  简单来说:
    • 第一步:指针遍历找到满足条件的开头下标,并用 start = i 记录开头;
    • 第二步:指针不断右移寻找满足条件的最长子数组;
    • 第三步:更新答案;
  • 时间复杂度:O(n),空间复杂度:O(1);

代码

class Solution {
public:int longestAlternatingSubarray(vector<int>& nums, int threshold) {// 时间复杂度:O(n)// 空间复杂度:O(1)int n = nums.size();int ans = 0;int i = 0;while(i < n){if(nums[i] > threshold || nums[i] % 2){i ++;// 直接跳过continue;}int start = i ++;// 找到了满足条件的开头下标while(i < n && nums[i] <= threshold && nums[i] % 2 != nums[i - 1] % 2){i ++;// 寻找满足条件最长子数组}ans = max(ans,i - start);// (start,i - 1) 均满足条件}return ans;}
};

2.连续字符

题目

解析

  • 同理可得

代码

class Solution {
public:int maxPower(string s) {// 时间复杂度:O(n)// 空间复杂度:O(1)int n = s.size();int ans = 0;int i = 0;while(i < n){int start = i ++;while(i < n && s[i] == s[i - 1]){i ++;}ans = max(ans,i - start);}return ans;}
};

3.哪种连续子字符串更长

题目

解析

  • 同理可得

代码

class Solution {int count(string s,char k){int n = s.size();int ans = 0;int i = 0;while(i < n){if(s[i] != k){i ++;continue;}int start = i ++;while(i < n && s[i] == k){i ++;}ans = max(ans,i - start);}return ans;}public:bool checkZeroOnes(string s) {// 时间复杂度:O(n)// 空间复杂度:O(1)return count(s,'1') > count(s,'0');}
};

4.找出长度为 K 的特殊子字符串

题目

解析

  • 同理可得

代码

class Solution {
public:bool hasSpecialSubstring(string s, int k) {// 时间复杂度:O(n)// 空间复杂度:O(1)int n = s.size();int i = 0;while(i < n){int start = i ++;while(i < n && s[i] == s[i - 1]){i ++;}if(i - start == k) return true;}return false;}
};

5.删除字符使字符串变好

题目

解析

  • 同理可得

代码

class Solution {
public:string makeFancyString(string s) {// 时间复杂度:O(n)// 空间复杂度:O(1)int n = s.size();string ans;int i = 0;while(i < n){int start = i ++;while(i < n && s[i] == s[i - 1]){i ++;}if(i - start <= 2) ans += s.substr(start,i - start);else ans += s.substr(start,2);}return ans;}
};

6.最长连续递增序列

题目

解析

  • 同理可得

代码

class Solution {
public:int findLengthOfLCIS(vector<int>& nums) {// 时间复杂度:O(n)// 空间复杂度:O(1)int n = nums.size();int ans = 1;int i = 0;while(i < n){int start = i ++;while(i < n && nums[i] > nums[i - 1]){i ++;}ans = max(ans,i - start);}return ans;}
};

7.最长湍流子数组

题目

解析

  • 题目要求:相邻数字单调性不断翻转;
  • 判断条件:(arr[i - 1] - arr[i]) * (arr[i] - arr[i + 1]) < 0;
  • 注意:i + 1 号元素也满足条件,所以 ans += i - start + 1 注意加 1;

代码

class Solution {typedef long long LL;
public:int maxTurbulenceSize(vector<int>& arr) {// 时间复杂度:O(n)// 空间复杂度:O(1)int n = arr.size();int ans = 1;int i = 0;while(i < n - 1){ // 判断要用到后面一个元素if(arr[i] == arr[i + 1]){i ++;continue;// 重复元素跳过}int start = i ++;while(i < n - 1 && (LL)(arr[i - 1] - arr[i]) * (arr[i] - arr[i + 1]) < 0){i ++;}ans = max(ans,i - start + 1);// i + 1 号元素也满足}return ans;}
};

相关文章:

双指针算法-day14(分组循环)

1.最长奇偶子数组 题目 解析 分组循环模板&#xff1a; 简单来说&#xff1a; 第一步&#xff1a;指针遍历找到满足条件的开头下标&#xff0c;并用 start i 记录开头&#xff1b;第二步&#xff1a;指针不断右移寻找满足条件的最长子数组&#xff1b;第三步&#xff1a;更新…...

Linux基础开发工具--gdb的使用

目录 安装准备&#xff1a; 1. 背景 2. 开始使用 3. 做一个Linux第一个小程序&#xff0d;进度条 安装准备&#xff1a; 对于gdb的学习使用&#xff0c;为了方便大家学习&#xff0c;我建议大家先安装一个cgdb进行学习&#xff0c;这样方便观察操作与学习gdb。 用以下…...

垃圾回收算法(Garbage Collection)深度解析

垃圾回收算法&#xff08;Garbage Collection&#xff09;深度解析 核心思想 垃圾回收核心目标&#xff1a; 定位存活对象 、回收死亡对象可达性分析算法、空间复用优化 生死判定原理 可达性分析法&#xff08;Reachability Analysis&#xff09; 通过GC Roots&#xff08…...

基于Matlab实现语音识别算法(源码+数据)

语音识别技术是现代信息技术中的一个重要领域&#xff0c;特别是在人机交互、智能设备、智能家居、自动驾驶等多个领域有着广泛应用。MATLAB作为一种强大的数值计算和数据可视化环境&#xff0c;因其易用性和丰富的库支持&#xff0c;常被用来实现复杂的算法&#xff0c;包括语…...

RabbitMQ的高级特性介绍(一)

消息确认机制 ⽣产者发送消息之后, 到达消费端之后, 可能会有以下情况: a. 消息处理成功 b. 消息处理异常 RabbitMQ向消费者发送消息之后, 就会把这条消息删掉, 那么第二种情况, 就会造成消息丢失。 那么如何确保消费端已经成功接收了, 并正确处理了呢? 为了保证消息从队列…...

QML开发入门1--安装QT6.8和新建第一个QtQuickApplication

1.下载在线安装工具 qt-online-installer-windows-x64-4.8.1.exe 2.安装 注&#xff1a;可能官网qt安装很慢。需要使用国内镜像源。推荐阿里镜像 qt-online-installer-windows-x64-4.8.1.exe --mirror https://mirrors.aliyun.com/qt3.配置QT关键配置 3.1 无法编译 注&#…...

指令系统2(Load/Store 指令)

一. Load/Store 指令 1. 前变址 前变址指令是在读取或存储数据时&#xff0c;先根据基址寄存器&#xff08;Rn&#xff09;与偏移量&#xff08;offset&#xff09;计算出有效地址&#xff0c;再进行数据操作。相关指令及示例如下&#xff1a; LDR R0, [R1, #4]&#xff1a;从…...

【实战案例】用STAR+3W模型拆解电商支付系统设计文档

各位开发者朋友&#xff0c;上次分享了结构化写作的黄金公式后&#xff0c;很多同学反馈需要更具象的落地方法。今天通过真实电商支付系统案例&#xff0c;手把手教你用STAR3W模型写出可执行的设计文档&#xff01; 结构化写作的「黄金公式」 STAR原则 3W模型 Situation&…...

C#使用SnsPictureBox.dll绘制点,线段、圆、折线、多边形、测量尺等多种图形。

CSDN下载地址&#xff1a;https://download.csdn.net/download/sns1991sns/87726867 gitee下载地址:https://gitee.com/linsns/SnsPictrueBox 支持2种绘制方式&#xff1a;响应式和等待式。 一、使用响应式绘制图形 1、在窗口构造函数里添加绘制图形的完成响应函数 public…...

如何让节卡机器人精准对点?

如何让节卡机器人精准对点&#xff1f; JAKA Zu 软件主界面主要由功能栏、开关栏、菜单栏构成。 菜单栏&#xff1a;控制柜管理&#xff0c;机器人管理与软件管理组成。主要功能为对控制柜关机、APP 设置、机器人本体设 置、控制柜设置、连接机器人和机器人显示等功能。 开关…...

文转语音好用的平台

一、国外平台推荐 第一梯队&#xff1a;全球头部服务 Amazon Polly&#xff08;AWS&#xff09; 特点&#xff1a;支持 70语言/方言&#xff0c;提供神经语音&#xff08;NTTS&#xff09;和标准语音&#xff0c;可克隆声音&#xff08;Voice Designer&#xff09;。平台&…...

常见JavaScript页面部分内容显示/隐藏设置总结

项目中经常遇到通过js判断对页面中某一部分进行显示/隐藏设置的场景&#xff0c;经常使用的是display&#xff0c;有时也会使用visibility、opacity&#xff0c;为此&#xff0c;特意查询了相关内容&#xff0c;对其进行了一下汇总记录下&#xff1a; 除了 display&#xff0c…...

在 Spring Boot 中调用 AnythingLLM 的发消息接口

整体逻辑: 自建系统的web UI界面调用接口: 1.SpringBoot接口&#xff1a;/anything/chatMessageAnything 2.调用anythingLLM - 调用知识库deepseek r1 . Windows Installation ~ AnythingLLMhttps://docs.anythingllm.com/installation-desktop/windows http://localhost:3…...

TextView、AppCompatTextView和MaterialTextView该用哪一个?Android UI 组件发展史与演进对照表

在 Android 开发中&#xff0c;UI 组件一直在不断演进&#xff0c;从最初的原生组件&#xff0c;到 Support Library&#xff08;AppCompat 兼容库&#xff09;&#xff0c;再到如今的 Material Design 组件。这篇文章将梳理 Android UI 组件的发展历史&#xff0c;并提供详细的…...

[GHCTF 2025]Popppppp[pop链构造] [php原生类的利用] [双md5加密绕过]

题目 <?php error_reporting(0);class CherryBlossom {public $fruit1;public $fruit2;public function __construct($a) {$this->fruit1 $a;}function __destruct() {echo $this->fruit1;}public function __toString() {$newFunc $this->fruit2;return $new…...

2025.3.20总结

阅读&#xff1a;《时间贫穷》第二章&#xff0c;里面讲到&#xff0c;运动&#xff0c;多行善事&#xff0c;体验自然&#xff0c;都会增强自我效能感&#xff0c;是对抗时间焦虑的强有力的方式。 花时间运动是值得的&#xff0c;公司每周三都是运动周&#xff0c;把运动视作…...

Tr0ll2靶机详解

一、主机发现 arp-scan -l靶机ip&#xff1a;192.168.55.164 二、端口扫描、漏洞扫描、目录枚举、指纹识别 2.1端口扫描 nmap --min-rate 10000 -p- 192.168.55.164发现21端口的ftp服务开启 以UDP协议进行扫描 使用参数-sU进行UDP扫描 nmap -sU --min-rate 10000 -p- 19…...

制造业数字化转型,汽车装备制造企业数字化转型案例,智能制造数字化传统制造业数字化制造业数字化转型案例

《某制造业企业信息化整体解决方案》PPT展示了一个汽车装备企业的整体信息化解决方案&#xff0c;阐述了该企业的业务特点和现状&#xff0c;主要包括按订单生产、多级计划和产品跟踪等&#xff0c;分析了信息化建设的主要困难&#xff0c;如信息管理手工化、过程数据追溯困难、…...

PyTorch模型转ONNX例子

参考&#xff1a;(optional) Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime — PyTorch Tutorials 2.6.0cu124 documentation import numpy as np import torch.utils.model_zoo as model_zoo import torch.onnx import torch.nn as nn import t…...

科技云报到:AI Agent打了个响指,商业齿轮加速转动

科技云报到原创。 3月16日&#xff0c;百度旗下文心大模型4.5和文心大模型X1正式发布。目前&#xff0c;两款模型已在文心一言官网上线&#xff0c;免费向用户开放。 同时&#xff0c;文心大模型4.5已上线百度智能云千帆大模型平台&#xff0c;企业用户和开发者登录即可调用AP…...

【蓝桥杯python研究生组备赛】005 数学与简单DP

题目1 01背包 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数&a…...

Chapter 4-16. Troubleshooting Congestion in Fibre Channel Fabrics

Show FCS Ie Example 4-17 shows the NX-OS command show fcs ie on Cisco MDS switches. 例 4-17 显示了 Cisco MDS 交换机上的 NX-OS 命令 show fcs ie。 Example 4-17 NX-OS command show fcs ie on Cisco MDS switches MDS9706-C# show fcs ie IE List for VSAN: 20 --…...

抖音视频数据获取实战:从API调用到热门内容挖掘

在短视频流量为王的时代&#xff0c;掌握抖音热门视频数据已成为内容运营、竞品分析及营销决策的关键。本文将手把手教你通过抖音开放平台API获取视频详情数据&#xff0c;并提供完整的代码实现及商业化应用思路。 一、抖音API权限申请与核心接口 抖音API需企业资质认证&…...

大白话读懂java对象创建的过程

1. java对象创建流程&#xff08;大白话版&#xff09; 咱们java对象被创建的过程大致如下&#xff0c;即&#xff1a; 在 JVM 中对象的创建&#xff0c;从⼀个 new 指令开始&#xff1a; 首先检查这个指令的参数是否能在常量池中定位到⼀个类的符号引用检查这个符号引用代表…...

Ubutu20.04安装docker与docker-compose

系统&#xff1a;20.04.6 LTS (Focal Fossa)" 1.配置apt源(在/etc/apt/sources.list中输入以下内容) # deb cdrom:[Ubuntu 20.04.6 LTS _Focal Fossa_ - Release amd64 (20230316)]/ focal main restricted deb http://mirrors.aliyun.com/ubuntu/ focal main restricted …...

AI图像理解技术的演进

在CLIP等现代多模态模型出现之前&#xff0c;早期的图生文技术主要依赖人工标注的ImageNet等数据集&#xff0c;但其技术路线与当前方法存在本质差异。 一、传统图生文技术的标注依赖 ImageNet的核心地位 在2012-2020年间&#xff0c;ImageNet的1,400万张人工标注图像&#xff…...

STM32 —— MCU、MPU、ARM、FPGA、DSP

在嵌入式系统中&#xff0c;MCU、MPU、ARM、FPGA和DSP是核心组件&#xff0c;各自在架构、功能和应用场景上有显著差异。以下从专业角度详细解析这些概念&#xff1a; 一、 MCU&#xff08;Microcontroller Unit&#xff0c;微控制器单元&#xff09; 核心定义 集成系统芯片&a…...

aiosignal

文章目录 安装 一、关于 aiosignal Github : https://github.com/aio-libs/aiosignal官方文档&#xff1a;https://aiosignal.aio-libs.org/gitter聊天&#xff1a;https://gitter.im/aio-libs/Lobby许可证 : Apache 2 aiosignal 管理 asyncio 项目中回调的项目。 Signal是已…...

在 VSCode 远程开发环境下使用 Git 常用命令

在日常开发过程中&#xff0c;无论是单人项目还是团队协作&#xff0c;Git 都是版本管理的利器。尤其是在使用 VSCode 连接远程服务器进行代码开发时&#xff0c;Git 不仅能帮助你管理代码版本&#xff0c;还能让多人协作变得更加高效。本文将介绍一些常用的 Git 命令&#xff…...

电脑节电模式怎么退出 分享5种解决方法

在使用电脑的过程中&#xff0c;许多用户为了节省电力&#xff0c;通常会选择开启电脑的节能模式。然而&#xff0c;在需要更高性能或进行图形密集型任务时&#xff0c;节能模式可能会限制系统的性能表现。这时&#xff0c;了解如何正确地关闭或调整节能设置就显得尤为重要了。…...