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

Leetcode 2760.最长奇偶子数组

给你一个下标从 0 开始的整数数组 nums 和一个整数 threshold 。

请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 (0 <= l <= r < nums.length) 且满足以下条件的 最长子数组 :

  • nums[l] % 2 == 0
  • 对于范围 [l, r - 1] 内的所有下标 i ,nums[i] % 2 != nums[i + 1] % 2
  • 对于范围 [l, r] 内的所有下标 i ,nums[i] <= threshold

以整数形式返回满足题目要求的最长子数组的长度。

注意:子数组 是数组中的一个连续非空元素序列。

示例 1:

输入:nums = [3,2,5,4], threshold = 5
输出:3
解释:在这个示例中,我们选择从 l = 1 开始、到 r = 3 结束的子数组 => [2,5,4] ,满足上述条件。
因此,答案就是这个子数组的长度 3 。可以证明 3 是满足题目要求的最大长度。

示例 2:

输入:nums = [1,2], threshold = 2
输出:1
解释:
在这个示例中,我们选择从 l = 1 开始、到 r = 1 结束的子数组 => [2] 。
该子数组满足上述全部条件。可以证明 1 是满足题目要求的最大长度。

示例 3:

输入:nums = [2,3,4,5], threshold = 4
输出:3
解释:
在这个示例中,我们选择从 l = 0 开始、到 r = 2 结束的子数组 => [2,3,4] 。 
该子数组满足上述全部条件。
因此,答案就是这个子数组的长度 3 。可以证明 3 是满足题目要求的最大长度。

提示:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100
  • 1 <= threshold <= 100
//分组循环
class Solution {public int longestAlternatingSubarray(int[] nums, int threshold) {int n = nums.length;int ans = 0, i = 0;while (i < n) {if (nums[i] > threshold || nums[i] % 2 != 0) {i++; // 直接跳过continue;}int start = i; // 记录这一组的开始位置i++; // 开始位置已经满足要求,从下一个位置开始判断while (i < n && nums[i] <= threshold && nums[i] % 2 != nums[i - 1] % 2) {i++;}// 从 start 到 i-1 是满足题目要求的(并且无法再延长的)子数组ans = Math.max(ans, i - start);}return ans;}
}

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux:Linux多线程
  • 前端打字效果
  • 基于langchain的prompt指令代码编写
  • 为什么企业跨国组网建议用SD-WAN?
  • 10分钟搞懂,Python接口自动化测试-接口依赖-实战教程
  • keepalived与lvs
  • 每日一问:深入理解C++中的访问控制机制——private、protected和public
  • Unified 阻抗控制 architecture、framework、approach
  • [CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - 视觉模型篇
  • golang(go语言)打包成带图标的 exe 可执行文件
  • WPS宏实现Sheet页拆分功能
  • 小编需复盘,写练习
  • 数采网关面临的安全挑战
  • 保研考研机试攻略:第六章——搜索(2)
  • docker映射了端口,宿主机不生效
  • 07.Android之多媒体问题
  • E-HPC支持多队列管理和自动伸缩
  • Java新版本的开发已正式进入轨道,版本号18.3
  • k个最大的数及变种小结
  • Laravel Mix运行时关于es2015报错解决方案
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Swift 中的尾递归和蹦床
  • 安装python包到指定虚拟环境
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 机器学习 vs. 深度学习
  • 看域名解析域名安全对SEO的影响
  • 小程序button引导用户授权
  • 延迟脚本的方式
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • #图像处理
  • (03)光刻——半导体电路的绘制
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (实战篇)如何缓存数据
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .Net中的设计模式——Factory Method模式
  • .project文件
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @Autowired @Resource @Qualifier的区别
  • [ JavaScript ] JSON方法
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)