LeetCode.3152.特殊数组II

news2024/12/21 23:01:42

题目描述:

如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。

你有一个整数数组 nums 和一个二维整数矩阵 queries,对于 queries[i] = [fromi, toi],请你帮助你检查 

子数组

 nums[fromi..toi] 是不是一个 特殊数组 

返回布尔数组 answer,如果 nums[fromi..toi] 是特殊数组,则 answer[i] 为 true ,否则,answer[i] 为 false 

输入输出实例:

思路:这道题目乍一看和昨天的题目差不多就只是多了一道遍历queries数组的过程,但是由于时间复杂度比较高最后会有一个实例过不了,所以我们需要改变一下思路。

使用比较直接的方法(时间复杂度高):
 

class Solution:
    def isArraySpecial(self, nums: List[int], queries: List[List[int]]) -> List[bool]:
        ans = []
        for from_i,to_i in queries:
            flag = 1
            for i in range(from_i,to_i):
                if nums[i]%2==0 and nums[i+1]%2==0:
                    flag = 0
                    break
                if nums[i]%2!=0 and nums[i+1]%2!=0:
                    flag = 0
                    break
            ans.append(True if flag==1 else False)
        return ans

 另一种思路:queries中每一个列表元素中有fromi和toi两个元素,也就是nums数组的fromi下标一直到toi下标,我们可以新建一个列表dp用来存储toi下标之前到toi 有多少个满足特殊数组条件的元素,【比如:nums=[1,2,3,4,2],dp[3] = 4,就是在nums[3]及其之前有连续的四个元素满足特殊数组条件,而dp[4] =1,在nums[4]及其之前只有一个元素满足特殊数组】,所以我们初始化dp值都为1,然后我们比较dp[toi]的值 和 fromi与toi之间的距离,如果是dp[toi]的值更大或者等于fromi与toi之间的距离,那nums[fromi]到nums[toi]这个子数组就肯定是特殊数组。根据上述思路有以下代码:
 

class Solution:
    def isArraySpecial(self, nums: List[int], queries: List[List[int]]) -> List[bool]:
        #dp[i]=n表示 包含nums[i]在内及之前这n个元素满足特殊数组,我们只需要比较toi及之前满足条件的数组长度 与fromi到toi的长度
        dp = [1] * len(nums)
        ans = []
        for i in range(0,len(nums)-1):
            if (nums[i]%2==0 and nums[i+1]%2!=0) or (nums[i]%2!=0 and nums[i+1]%2==0) :
                dp[i+1] = dp[i] + 1
        for from_i,to_i in queries:
            #如果在nums中在toi及之前的满足特殊数组条件的子数组长度比fromi到toi之间的长度长,那就为True
            ans.append(True if dp[to_i] >= to_i - from_i + 1 else False)
        return ans

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2041562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】多线程7——线程池

1.线程池的概念 1.1.池化技术 池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。 在系统开发过程中,我们经常会用到池化技术。通俗的讲,池化技术就是:把一些资源预先分配好,组织到对象池中…

idea Spring-boot 项目debug启动过慢 :已验证

问题描述 Springboot项目在Idea中开发,server模型启动正常,但debug模式启动非常缓慢。 解决方案: 检查了项目配置,均没有问题,等20分钟以上能正常启动,但这样无法调试。查很多资料都没有找到问题解决方案…

spring01-spring容器启动过程分析

【README】 本文总结自《spring揭秘》,作者王福强,非常棒的一本书,墙裂推荐; spring容器根据配置元素组装可用系统分2个阶段,包括spring容器启动, springbean实例化阶段; 本文详细分析spring容…

Java项目通过IDEA远程debug调试

前言 在我们真实项目开发过程中,又是经常会发现一种问题,就是我们在开发环境功能是正常的,在测试环境可能也不太容易发现问题。 结果到了生产环境,由于数据量大,且数据类型变多后,就产生了一些比较难复现…

创客匠人对话(下):普通人做心理学IP为何如此成功?

老蒋创客圈第63期对话标杆直播连麦,我们邀请到【惢众身心成长家园平台】王辉老师。在上篇文章中,我们着重分享了王辉老师如何通过原有客源造流量,引爆大事件发售的核心秘籍。 本篇文章我们将继续分享对话精彩内容,深度剖析王辉老…

python两大编程思想,类和对象,实例变量类变量,静态方法与实例方法和类方法,给对象动态绑定属性和函数

1.两大编程思想 面向对象(python和java)和面向过程(c语言)编程思想的区别 2.类和对象 1.类是抽出对象中的相似属性和行为得到的类别 python中一切皆对象 对于字符串,整数等等都是类型class 可以自定义class&#x…

海康相机二次开发学习笔记2-方案的相关操作

方案和流程是VisionMaster(简称VM)的主要概念,一个方案可以包含多个流程,一个流程可以由多个模块通过连线建立逻辑关系. 方案的相关操作 1. 界面设计 界面分为三个部分:流程显示区,方案操作区,消息显示区.添加GroupBox,文本框,文本,和一些按钮. 2. 流程显示区 为了将方案加…

基于Spring Boot的可盈保险合同管理系统的设计与实现

TOC springboot146基于Spring Boot的可盈保险合同管理系统的设计与实现 绪论** 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关…

论文复现_从 CONAN 中收集 TPL 数据集

1. 概述 CONAN:Conan是一个用于C项目的开源包管理工具。 它的主要目标是简化C项目的依赖关系管理过程,使开发人员能够更轻松地集成、构建和分享C库。 其中有一些比较独特的功能,例如:版本管理、第三方库管理等。 TPL 数据集&…

2.1 MySQL概述

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

多媒体技术及应用课程思政网站

摘 要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括多媒体技术及应用课程思政网站的网络应用,在外国多媒体技术及应用课程思政已经是很普遍的方式,不过国内的多媒体技术及应用课程思政可能还处于起…

【MIT-BEVFusion代码解读】第二篇:LiDAR的encoder部分

文章目录 1. Voxelization2. backbone2.1 稀疏卷积介绍2.2 SparseEncoder(1)输入输出及参数说明(2)流程 BEVFusion相关的其它文章链接: 【论文阅读】ICRA 2023|BEVFusion:Multi-Task Multi-Sensor Fusion w…

VPN远程同时连接:IPsec站点到站点方式及L2TPoverIPsecVPN方式

一、实验目的及拓扑 实验目的:企业总部与分支通过IPsecVPN建立点对点连接,移动端通过L2TP方式与企业总部连接 二、基本配置 1、如图所示配置接口地址 2、总部接口区域配置 [FW1]dis zone local priority is 100 interface of the zone is (0): # …

【数值计算方法】常微分方程初值问题的数值解法

常微分方程初边值问题数值解 第九章 1. 引言 微分方程 :含有未知函数及其导数或微分的等式; 除了少数特殊类型的微分方程能用解析方法求得精确解外 , 多数情况找不到解的解析表达式 本章研究两类常微分问题: 一阶常微分方程的初值问题 ; 两阶常微分方程边值问题 一…

C#小结:如何在VS2022中使用菜单栏中的Git管理代码

目录 第一部分:基础操作 第一步,登录官网,设置好邮箱,然后右上角新建仓库 第二步,提交代码到远程仓库中 第三步,查看和比对自己修改的内容 第四步,查看该项目所有提交历史记录 第五步&…

LAMM: Label Alignment for Multi-Modal Prompt Learning

系列论文研读目录 文章目录 系列论文研读目录文章题目含义AbstractIntroductionRelated WorkVision Language ModelsPrompt Learning MethodologyPreliminaries of CLIPLabel AlignmentHierarchical Loss 分层损失Parameter Space 参数空间Feature Space 特征空间Logits Space …

CSP-CCF 202009-1 检测点查询

一、问题描述 二、解答 提醒:本题不宜开方,距离间的比较用平方来比较更好 思路:使用三次for循环,逐一找到最小、第二小、第三小 注:这里用到了limits.h头文件,里面包含了int的最大值INT_MAX #include&l…

搭建企业博客:塑造品牌可信度与优化SEO的利器

引言 在数字化时代,信息的传播速度超乎想象,企业如何在这个信息爆炸的环境中脱颖而出,成为连接消费者、塑造品牌形象的关键。企业博客,作为一种低成本、高效率的营销与沟通工具,正逐渐成为企业策略中不可或缺的一环。…

阅读台灯什么品牌好?不良商家最常用的四大阅读台灯套路,需警惕

阅读台灯什么品牌好?市场上的护眼台灯种类繁多,众多选择中不乏以低价吸引消费者的产品,这也导致了部分家长对于护眼台灯的价值产生了质疑,认为它们不过是不必要的开销。确实,一些低质的护眼灯不仅使用了劣质材料&#…

利用minikube部署k8s集群并部署lnmp服务

部署minikube 参考官网进行安装部署 利用minikube部署k8s集群 1. 部署k8s集群 minikube start k8s集群部署lnmp 1. 将如下内容存储为lnmp.yaml文件 --- apiVersion: v1 kind: Namespace metadata: name: lnmp --- apiVersion: v1 kind: PersistentVolumeClaim metadata: na…