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

【康复学习--LeetCode每日一题】3152. 特殊数组 II

题目:

如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。
你有一个整数数组 nums 和一个二维整数矩阵 queries,对于 queries[i] = [fromi, toi],请你帮助你检查 子数组 nums[fromi…toi] 是不是一个 特殊数组 。
返回布尔数组 answer,如果 nums[fromi…toi] 是特殊数组,则 answer[i] 为 true ,否则,answer[i] 为 false 。

示例 1:
输入:nums = [3,4,1,2,6], queries = [[0,4]]
输出:[false]
解释:
子数组是 [3,4,1,2,6]。2 和 6 都是偶数。

示例 2:
输入:nums = [4,3,1,6], queries = [[0,2],[2,3]]
输出:[false,true]
解释:
子数组是 [4,3,1]。3 和 1 都是奇数。因此这个查询的答案是 false。
子数组是 [1,6]。只有一对:(1,6),且包含了奇偶性不同的数字。因此这个查询的答案是 true。

提示:
1 <= nums.length <= 105
1 <= nums[i] <= 105
1 <= queries.length <= 105
queries[i].length == 2
0 <= queries[i][0] <= queries[i][1] <= nums.length - 1

思路:

dp,如果想知道num[i…j]是否为特殊数组,一个数组为特殊数组,则他的子数组也一定是特殊数组,故只需知道num[0…j]是否能完全覆盖[i,j]即可。

代码:

class Solution {public boolean[] isArraySpecial(int[] nums, int[][] queries) {int n = nums.length;int[] dp = new int[n];Arrays.fill(dp, 1);// 先维护dp数组,记录当前串特殊数组的最大长度for (int i = 1; i < n; i++) {if (((nums[i] ^ nums[i - 1]) & 1) != 0) {dp[i] = dp[i - 1] + 1;}}// 判断是否能全覆盖boolean[] res = new boolean[queries.length];for (int i = 0; i < queries.length; i++) {int x = queries[i][0], y = queries[i][1];res[i] = dp[y] >= y - x + 1;}return res;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 比OpenAI的Whisper快50%,最新开源语音模型
  • Apache Doris 的 Incremental Read增量读取,数据合并,数据清理
  • Java重修笔记 第三十三天 StringBuffer类、StringBuild类
  • jenkins工具配置
  • 谷歌实用Gmail技巧:批量使用多个外贸邮箱技巧
  • 《计算机组成原理》(第3版)第10章 控制单元的设计 复习笔记
  • 聊聊JS中的WebSocket
  • 2024年8月9号(frp)
  • Verilog基础:模块端口(port)定义的语法(2001标准)
  • C++基础编程100题-040 OpenJudge-1.5-01 求平均年龄
  • 大语言模型的简易可扩展增量预训练策略
  • 代码随想录算法训练营day43 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
  • 水库大坝安全监测:筑起水坝安全防线
  • 搜索最新全国工商信息的软件
  • 【Spark集群部署系列一】Spark local模式介绍和搭建以及使用(内含Linux安装Anaconda)
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Javascript基础之Array数组API
  • java取消线程实例
  • js对象的深浅拷贝
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Vue ES6 Jade Scss Webpack Gulp
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Web Storage相关
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 基于遗传算法的优化问题求解
  • 前端之React实战:创建跨平台的项目架构
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 实现菜单下拉伸展折叠效果demo
  • 微信小程序实战练习(仿五洲到家微信版)
  • 用jQuery怎么做到前后端分离
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 仓管云——企业云erp功能有哪些?
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #{}和${}的区别是什么 -- java面试
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #pragma once与条件编译
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)逆序输出字符串
  • (web自动化测试+python)1
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ../depcomp: line 571: exec: g++: not found
  • .net core webapi 大文件上传到wwwroot文件夹
  • .Net Core缓存组件(MemoryCache)源码解析
  • .Net 代码性能 - (1)
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET8使用VS2022打包Docker镜像
  • .Net程序帮助文档制作
  • .NET连接数据库方式
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .net下简单快捷的数值高低位切换
  • .NET中的十进制浮点类型,徐汇区网站设计