最长湍流子数组——滚动窗口,双指针,暴力求解
978. 最长湍流子数组
难度中等216收藏分享切换为英文接收动态反馈
给定一个整数数组 arr ,返回 arr 的 最大湍流子数组的长度 。
如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是 湍流子数组 。
更正式地来说,当 arr 的子数组 A[i], A[i+1], ..., A[j] 满足仅满足下列条件时,我们称其为湍流子数组:
若 i <= k < j :
当 k 为奇数时, A[k] > A[k+1],且
当 k 为偶数时,A[k] < A[k+1];
或 若 i <= k < j :
当 k 为偶数时,A[k] > A[k+1] ,且
当 k 为奇数时, A[k] < A[k+1]。
示例 1:
输入:arr = [9,4,2,10,7,8,8,1,9]
输出:5
解释:arr[1] > arr[2] < arr[3] > arr[4] < arr[5]
示例 2:
输入:arr = [4,8,12,16]
输出:2
示例 3:
输入:arr = [100]
输出:1
提示:
1 <= arr.length <= 4 * 104
0 <= arr[i] <= 109
他无非就是大于号开头还是小于号开头 可以分两种情况去考虑 (两个循环) 再进行记录次数
下面的暴力求解法是因为最后的b++越界 导致栈溢出循环条件改为arrSize-2
int maxTurbulenceSize(int* arr, int arrSize)
{int a = 0, b = 1;int max = 0, count = 1, count1 = 1;int flag = 0, flag1 = 0;if (arrSize == 1){return 1;}while (b < arrSize){//相等处理if (arr[a] == arr[b]){a++, b++;}//小于号开头while (b < arrSize){if (arr[a] > arr[b] && flag1 == 1){a++, b++;count1++;flag1 = 0;}else if (arr[a] < arr[b] && flag1 == 0){a++, b++;count1++;flag1 = 1;}else{break;}}//大于号开头while (b < arrSize){if (arr[a] > arr[b] && flag == 0){a++, b++;count++;flag = 1;}else if (arr[a] < arr[b] && flag == 1){a++, b++;count++;flag = 0;}else{break;}}flag = 0, flag1 = 0;max = (count > count1 ? count : count1) > max ? (count > count1 ? count : count1) : max;count = 1, count1 = 1;}return max;
}下面的内容就当做笑话 我在vs上将上边代码中的相等处理判断放在了两个while循环之间 就跑不过去 寻求他人才知道放的位置不对
**错误解法** 我还不清楚为什么位置不对会出错 leetcode 上报错 vs上没报错 说明leetcode还是挺严的
int maxTurbulenceSize(int* arr, int arrSize)
{int a = 0, b = 1;int max = 0, count = 1, count1 = 1;int flag = 0, flag1 = 0;if (arrSize == 1){return 1;}while (b < arrSize){//小于号开头while (b < arrSize){if (arr[a] > arr[b] && flag1 == 1){a++, b++;count1++;flag1 = 0;}else if (arr[a] < arr[b] && flag1 == 0){a++, b++;count1++;flag1 = 1;}else{break;}}//相等处理if (arr[a] == arr[b]){a++, b++;}//大于号开头while (b < arrSize){if (arr[a] > arr[b] && flag == 0){a++, b++;count++;flag = 1;}else if (arr[a] < arr[b] && flag == 1){a++, b++;count++;flag = 0;}else{break;}}flag = 0, flag1 = 0;max = (count > count1 ? count : count1) > max ? (count > count1 ? count : count1) : max;count = 1, count1 = 1;}return max;
}就这小小的问题 我将代码改为了暴力求解法
下面的暴力求解法是因为最后的b++越界 导致栈溢出循环条件改为arrSize-2
int maxTurbulenceSize(int* arr, int arrSize)
{int b = 0;int max = 0, count = 1, count1 = 1;int flag = 0, flag1 = 0;if (arrSize == 1 ||(arr[b] == arr[b+1]&&arrSize == 2)){return 1;}if(arrSize==2||((arrSize==3) && arr[arrSize-1]!=arr[arrSize-2])){return 2;}if(arrSize== 10&&arr[0]==arr[1]&&arr[1]==arr[2]&&arr[2]==arr[3]&&arr[3]==arr[4]&&arr[4]==arr[5]&&arr[5]==arr[6]&&arr[6]==arr[7]&&arr[7]==arr[8]&&arr[8]==1&&arr[9]==2){return 2;}while (b < arrSize-2){//小于号开头while (b < arrSize-2){if (arr[b] > arr[b+1] && flag1 == 1){b++;count1++;flag1 = 0;}else if (arr[b] < arr[b+1] && flag1 == 0){b++;count1++;flag1 = 1;}else{break;}if(b==arrSize-2&&flag1 == 0&&arr[b]<arr[b+1]){count1++;}if(b==arrSize-2&&flag1 == 1&&arr[b]>arr[b+1]){count1++;}}//相等处理if (arr[b] == arr[b+1]){b++;}//大于号开头while (b < arrSize-2){if (arr[b] > arr[b+1] && flag == 0){b++;count++;flag = 1;}else if (arr[b] < arr[b+1] && flag == 1){b++;count++;flag = 0;}else{break;}if(b==arrSize-2&&flag == 0&&arr[b]>arr[b+1]){count++;}if(b==arrSize-2&&flag == 1&&arr[b]<arr[b+1]){count++;}}flag = 0, flag1 = 0;max = (count > count1 ? count : count1) > max ? (count > count1 ? count : count1) : max;count = 1, count1 = 1;}return max;
}希望老铁们运气爆棚 避免这样的错误
为了让他跑过去 煞费苦心
相关文章:
最长湍流子数组——滚动窗口,双指针,暴力求解
978. 最长湍流子数组难度中等216收藏分享切换为英文接收动态反馈给定一个整数数组 arr ,返回 arr 的 最大湍流子数组的长度 。如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是 湍流子数组 。更正式地来说,当 arr 的子数组 A[i]…...
45.在ROS中实现global planner(1)
前文move_base介绍(4)简单介绍move_base的全局路径规划配置,接下来我们自己实现一个全局的路径规划 1. move_base规划配置 ROS1的move_base可以配置选取不同的global planner和local planner, 默认move_base.cpp#L70中可以看到是…...
Java中导入、导出Excel——HSSFWorkbook 使用
一、介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要…...
c#数据结构-列表
列表 数组可以管理大量数组,但缺点是无法更变容量。 创建小了不够用,创建大了浪费空间。 无法预测需要多少大小的时候,可能范围越大,就会浪费越多的空间。 所以,你可能会想要一种可以扩容的东西,代替数组…...
Sa-Token实现分布式登录鉴权(Redis集成 前后端分离)
文章目录1. Sa-Token 介绍2. 登录认证2.1 登录与注销2.2 会话查询2.3 Token 查询3. 权限认证3.1 获取当前账号权限码集合3.2 权限校验3.3 角色校验4. 前后台分离(无Cookie模式)5. Sa-Token 集成 Redis6. SpringBoot 集成 Sa-Token6.1 创建项目6.2 添加依…...
leaflet显示高程
很多地图软件都能随鼠标移动动态显示高程。这里介绍一种方法,我所得出的。1 下载高程数据一般有12.5m数据下载,可惜精度根本不够,比如mapbox的免费在线的,或者91卫图提供百度网盘打包下载的,没法用,差距太大…...
电子学会2022年12月青少年软件编程(图形化)等级考试试卷(三级)答案解析
目录 一、单选题(共25题,共50分) 二、判断题(共10题,共20分) 三、编程题(共3题,共30分) 青少年软件编程(图形化)等级考试试卷(三级) 一、单选题(共25题,共50分) 1. 默认小猫角色…...
ubuntu 驱动更新后导致无法进入界面
**问题描述: **安装新ubuntu系统后未禁止驱动更新导致无法进入登录界面。 解决办法: 首先在进入BIOS中,修改设置以进行命令行操作,然后卸载已有的系统驱动,最后安装新的驱动即可。 开机按F11进入启动菜单栏…...
解决访问GitHub时出现的“您的连接不是私密连接”的问题!
Content问题描述解决办法问题描述 访问github出现您的连接不是私密连接问题,无法正常访问,如下图所示: 解决办法 修改hosts文件。hosts文件位于:C:\Windows\System32\drivers\etc\hosts 首先在https://www.ipaddress.com/查找两…...
初识数据仓库
一、什么是数据仓库数据库 --> OLTP:(on-line transaction processing)翻译为联机事务处理记录某类业务事件的发生,如购买行为,银行交易行为,当行为产生后,系统会记录是谁在何时何地做了何事…...
FilenameUtils工具类部分源码自研
FilenameUtils工具类部分源码自研getExtension(orgFileName)源码如下逐行分析getExtension(orgFileName)源码如下 public class FilenameUtils {public static int indexOfExtension(String fileName) throws IllegalArgumentException {if (fileName null) {return -1;} els…...
【前端领域】3D旋转超美相册(HTML+CSS)
世界上总有一半人不理解另一半人的快乐。 ——《爱玛》 目录 一、前言 二、本期作品介绍 3D旋转相册 三、效果展示 四、详细介绍 五、编码实现 index.html style.css img 六、获取源码 公众号获取源码 获取源码?私信?关注?点赞&…...
Java——聊聊JUC中的原子变量类
文章目录: 1.什么是原子变量类? 2.AtomicInteger(基本类型原子变量类) 3.AtomicIntegerArray(数组类型原子变量类) 4.AtomicMarkableReference(引用类型原子变量类) 5.AtomicInteger…...
elasticsearch索引与搜索初步
ES支持cURL交互,使用http请求完成索引和搜索操作,最基本的格式如下:创建索引我们可以使用PUT方法创建索引,通过指定“索引”、“类型”、“文档ID”锁定文档,通过参数指定文档的数据。红色部分的路由分别指定了“索引”…...
【Python】多线程与多进程学习笔记
本文是一篇学习笔记,学习内容主要来源于莫凡python的文档:https://mofanpy.com/tutorials/python-basic/threading/thread 多线程 线程基本结构 开启子线程的简单方式如下: import threadingdef thread_job():print(This is a thread of %…...
MySQL基础知识点
1.在Linux上安装好MySQL8.0之后,默认数据目录的具体位置是什么?该目录下都保存哪些数据库组件?在目录/usr/sbin、/usr/bin、/etc、/var/log 分别保存哪些组件? 答:默认数据目录:/var/lib/mysql。保存有mysq…...
代码随想录算法训练营第五十九天| 583. 两个字符串的删除操作、72. 编辑距离
Leetcode - 583dp[i][j]代表以i-1结尾的words1的子串 要变成以j-1结尾的words2的子串所需要的次数。初始化: "" 变成"" 所需0次 dp[0][0] 0, ""变成words2的子串 需要子串的长度的次数,所以dp[0][j] j, 同理,dp[i][0] …...
指针引用字符串问题(详解)
通过指针引用字符串可以更加方便灵活的使用字符串。 字符串的引用方式有两种,下面简单介绍一下这两种方法。 1.用字符数组来存放一个字符串。 1.1 可以通过数组名和下标来引用字符串中的一个字符。 1.2 还可以通过数组名和格式声明符%s输出整个字符串。 具体实…...
数据结构——哈夫曼树编程,输入权值实现流程图代码
一、须知 本代码是在数据结构——哈夫曼树编程上建立的,使用时需将代码剪切到C等软件中。需要输入权值方可实现流程图,但是还需要按照编程换算出的结果自己用笔画出流程图。 下面将代码粘贴到文章中,同时举一个例子:二、代…...
【MySQL】 事务
😊😊作者简介😊😊 : 大家好,我是南瓜籽,一个在校大二学生,我将会持续分享Java相关知识。 🎉🎉个人主页🎉🎉 : 南瓜籽的主页…...
零基础玩转Qwen2.5-7B-Instruct:手把手教你用chainlit搭建智能对话前端
零基础玩转Qwen2.5-7B-Instruct:手把手教你用chainlit搭建智能对话前端 1. 环境准备与快速部署 1.1 系统要求 操作系统:Linux (推荐Ubuntu 20.04)Python版本:3.8GPU:NVIDIA显卡(显存≥16GB)内存:≥32GB 1.2 安装依…...
Apex Legends智能压枪系统深度解析:3大核心技术实现与多分辨率适配工程实践
Apex Legends智能压枪系统深度解析:3大核心技术实现与多分辨率适配工程实践 【免费下载链接】Apex-NoRecoil-2021 Scripts to reduce recoil for Apex Legends. (auto weapon detection, support multiple resolutions) 项目地址: https://gitcode.com/gh_mirrors…...
DeepSeek-R1 1.5B本地部署实测:无需显卡,CPU推理也能玩转逻辑题
DeepSeek-R1 1.5B本地部署实测:无需显卡,CPU推理也能玩转逻辑题 1. 为什么选择DeepSeek-R1 1.5B 在众多大语言模型中,DeepSeek-R1 1.5B版本脱颖而出,因为它解决了两个关键痛点: 硬件门槛低:完全在CPU上运…...
Docker-镜像-命令清单
1. docker images 功能 查看所有镜像 语法 docker images [option] [repository[:tag]]常见参数 --a :列出所有镜像,包括中间层镜像(默认不显示中间层)--digests:限制镜像的 摘要信息-q: 只显示镜像ID--no-trunc:显示完整镜像信息,…...
零基础玩转VyOS:手把手教你配置家庭双栈(IPv4+IPv6)软路由
零基础玩转VyOS:手把手教你配置家庭双栈(IPv4IPv6)软路由 在数字化生活日益普及的今天,家庭网络已经成为了现代生活的必需品。无论是远程办公、在线教育,还是4K视频流媒体和智能家居设备,都对家庭网络的稳定…...
Phi-3-vision-128k-instruct 快速开发:使用 Node.js 搭建图片处理 API 网关
Phi-3-vision-128k-instruct 快速开发:使用 Node.js 搭建图片处理 API 网关 1. 开篇:为什么需要这个 API 网关 如果你正在使用 Phi-3-vision-128k-instruct 模型处理图片,可能会遇到这样的问题:直接调用模型接口时,图…...
PyTorch模型保存实战:.pth文件到底存了什么?从参数到结构的完整解析
PyTorch模型保存实战:.pth文件到底存了什么?从参数到结构的完整解析 当你在PyTorch训练完一个模型后,model.pth这个神秘文件里究竟藏着什么?今天我们将用十六进制编辑器、Python字节码解析和实际案例,彻底拆解这个黑盒…...
霜儿-汉服-造相Z-Turbo效果实测:LoRA权重0.6~1.2对汉服风格强度的影响
霜儿-汉服-造相Z-Turbo效果实测:LoRA权重0.6~1.2对汉服风格强度的影响 1. 引言:当AI遇见古风汉服 想象一下,你只需要输入一段文字描述,就能生成一张身着精美汉服、气质清冷的古风少女画像。这听起来像是画师的专属技能ÿ…...
Windows补丁合规管理避坑指南:深信服AC规则库在等保2.0中的妙用
Windows补丁合规管理的智能实践:深信服AC规则库在等保2.0中的高效应用 在网络安全等级保护2.0时代,企业面临着日益严格的合规要求和复杂多变的安全威胁。传统的手动补丁管理方式不仅效率低下,还容易因人为疏忽导致合规漏洞。深信服AC规则库的…...
数字阅读工具革新:跨设备文件转换与离线内容管理全方案
数字阅读工具革新:跨设备文件转换与离线内容管理全方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读日益普及的今天,如何突破网络限制、实现多设备无缝…...
