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

Leetcode3097:或值至少为 K 的最短子数组 II

题目描述:

给你一个 非负 整数数组 nums 和一个整数 k 。

如果一个数组中所有元素的按位或运算 OR 的值 至少 为 k ,那么我们称这个数组是 特别的 。

请你返回 nums 中 最短特别非空 子数组的长度,如果特别子数组不存在,那么返回 -1 。

代码思路:

  1. 初始化变量
    • length:数组 nums 的长度。
    • MIN:用于记录最短子数组的长度,初始值设为 length + 1(一个不可能达到的长度,用于后续判断是否存在符合条件的子数组)。
    • lr:分别表示当前考虑的子数组的左右边界(左闭右闭)。
    • ans:用于存储当前右边界 r 及其左侧所有元素的按位或结果。
  2. 遍历数组
    • 使用 while 循环遍历数组,r 表示当前考察的右边界。
    • 在每次循环中,更新 ans 为从 l 到 r 的所有元素的按位或结果。
    • 如果 ans >= k,则尝试从右向左找到一个最短的子数组,使得其按位或结果不小于 k
  3. 内部循环
    • 从 r 到 l-1 向左遍历,尝试找到一个最短的满足条件的子数组。
    • 使用 temp 和 pre 变量来记录当前和上一个位置的按位或结果。
    • 如果找到一个满足条件的子数组,更新 MINl 和 ans
  4. 结果判断
    • 如果 MIN 仍然是 length + 1,说明没有找到符合条件的子数组,返回 -1
    • 否则,返回 MIN

代码实现:

class Solution:def minimumSubarrayLength(self, nums: List[int], k: int) -> int:length = len(nums)MIN = length + 1l = r = ans = 0while(r < length):ans = ans | nums[r]if ans >= k:temp = pre = 0for i in range(r, l-1, -1):pre = temptemp = temp | nums[i]if temp >= k:MIN = min(MIN, r-i+1)l = i + 1ans = prebreakr += 1if MIN == length + 1:return -1return MIN

 

 

相关文章:

Leetcode3097:或值至少为 K 的最短子数组 II

题目描述&#xff1a; 给你一个 非负 整数数组 nums 和一个整数 k 。 如果一个数组中所有元素的按位或运算 OR 的值 至少 为 k &#xff0c;那么我们称这个数组是 特别的 。 请你返回 nums 中 最短特别非空 子数组的长度&#xff0c;如果特别子数组不存在&#xff0c;那么返…...

HTML应用指南:利用GET请求获取全国特斯拉充电桩位置

随着电动汽车的普及&#xff0c;充电基础设施的建设变得至关重要。作为电动汽车领域的先驱&#xff0c;特斯拉不仅在车辆技术创新上持续领先&#xff0c;还积极构建广泛的充电网络&#xff0c;以支持其不断增长的用户群体。为了提升用户体验和服务质量&#xff0c;开发人员和数…...

阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI

通义灵码是基于阿里巴巴通义大模型研发的AI 智能编码助手&#xff0c;在通义灵码 1.0 时代&#xff0c;我们针对代码的生成、补全和问答&#xff0c;通过高效果、低时延&#xff0c;研发出了国内最受欢迎的编码助手。 在通义灵码 2.0 发布会上&#xff0c;阿里云通义实验室自然…...

第8篇:从入门到精通:掌握Python异常处理

第8篇&#xff1a;异常处理 内容简介 本篇文章将深入探讨Python中的异常处理机制。您将学习异常的基本概念与类型&#xff0c;掌握使用try-except块处理异常的方法&#xff0c;了解finally语句的作用&#xff0c;以及如何抛出和定义自定义异常。通过丰富的代码示例&#xff0…...

设计模式-结构型-装饰器模式

装饰器模式&#xff08;Decorator Pattern&#xff09;是结构型设计模式中的一种&#xff0c;它允许你通过将对象封装在一个新的对象中&#xff0c;来动态地添加新的功能&#xff0c;而无需改变原对象的结构。装饰器模式的核心思想是“将功能附加到对象上”&#xff0c;它是一种…...

git详细使用教程

文章目录 一、 git介绍与安装1、git介绍2、git的安装3、git使用前的说明 二、git的基础使用1、走进git之前2、git基础使用1、git init 项目初始化&#xff08;init&#xff09;成仓库&#xff08;repository&#xff09;2、git add 管理文件3、git commit 把文件提交到仓库&…...

java实现word转html(支持docx及doc文件)

private final static String tempPath "C:\\Users\\xxx\\Desktop\\Word2Html\\src\\test\\";//图片及相关文件保存的路径public static void main(String argv[]) {try {JFileChooser fileChooser new JFileChooser();fileChooser.setDialogTitle("Select a …...

搜维尔科技:Xsens人形机器人解决方案的优势

Xsens 致力于推动人形机器人技术的发展&#xff0c;塑造机器人与人类环境无缝融合的未来&#xff0c;通过创新精确和协作&#xff0c;协助生产和服务&#xff0c;改善人类生活和产业。 Xsens通过人形跟随捕捉详细的人体运动数据&#xff0c;使机器人能够学习类人的动作&#x…...

【王树森搜索引擎技术】概要01:搜索引擎的基本概念

1. 基本名词 query&#xff1a;查询词SUG&#xff1a;搜索建议文档&#xff1a;搜索结果标签/筛选项 文档单列曝光 文档双列曝光 2. 曝光与点击 曝光&#xff1a;用户在搜索结果页上看到文档&#xff0c;就算曝光文档点击&#xff1a;在曝光后&#xff0c;用户点击文档&…...

《Java核心技术II》可中断套接字

4.2.4 可中断套接字 SocketChannel可以中断套接字 SocketChannel channel.open(new InetSocketAddress(host,port)); 通道(channel)并没有与之相关联的流&#xff0c;实际上&#xff0c;所拥有的read和write方法都是通过Buffer对象实现的。 如果不想处理缓冲区&#xff0c;…...

基于 Python 的深度学习的车俩特征分析系统,附源码

博主介绍&#xff1a;✌stormjun、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

C#读写ini配置文件保存设置参数

本示例使用设备&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b5P5rkA&ftt&id22173428704 [DllImport("kernel32", CharSet CharSet.Unicode)] public static extern uint GetPrivateProfileString(string lpAppName, stri…...

SwanLab环境变量列表

文章目录 环境变量全局配置服务配置登录认证其他 环境变量 ⚙️完整环境变量1 -> Github、⚙️完整环境变量2 -> Github 全局配置 环境变量描述默认值SWANLAB_SAVE_DIRSwanLab 全局文件夹保存的路径用户主目录下的 .swanlab 文件夹SWANLAB_LOG_DIRSwanLab 解析日志文件…...

深度学习入门-CNN

一、CNN是什么 CNN&#xff0c;即卷积神经网络&#xff08;convolutional neural network&#xff09;&#xff0c;是用于预测的标准神经网络架构。在人工智能的广阔领域中&#xff0c;CNN被用于图像识别、语音识别等各种场合&#xff0c;CNN通过模拟人类视觉皮层的神经元连接方…...

微服务网关,如何选择?

什么是API网关 API网关&#xff08;API Gateway&#xff09;是微服务架构中的一个关键组件&#xff0c;它充当了客户端与后端服务之间的中间层。其主要功能包括请求路由、协议转换、负载均衡、安全认证、限流熔断等。通过API网关&#xff0c;客户端无需直接与多个微服务交互&a…...

SpringBoot集成Mqtt服务实现消费发布和接收消费

该项目介绍了docker环境下如何安装mqtt和springboot集成mqtt服务 前述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,设计用于在资源受限的设备和低带宽、不可靠的网络连接中高效地传输数据。主要用于物联网设备传输,设备之间可以高效地交换数据…...

在Mac mini上实现本地话部署AI和知识库

在Mac mini上实现本地话部署AI和知识库 硬件要求&#xff1a;大模型AI&#xff0c;也叫LLM&#xff0c;需要硬件支持&#xff0c;常见的方式有2种&#xff1a;一种是采用英伟达之类支持CUDA库的GPU芯片或者专用AI芯片&#xff1b;第二种是采用苹果M系列芯片架构的支持统一内存架…...

一个方法被多个线程同时调用,确保同样参数的调用只能有一个线程执行,不同参数的调用则可以多个线程同时执行

我们知道通过lock一个固定静态object给代码段加同步锁&#xff0c;可以让多个线程的同时调用以同步执行&#xff0c;因此可以利用字典来给不同参数分配不同的静态对象&#xff0c;方法中不同的参数调用锁住各自不同的静态对象即可实现不同参数不加锁&#xff0c;相同参数才加锁…...

3. MySQL事务并发的问题与解决方法

一. 并发事务带来的问题 并发会造成事务间出现脏读&#xff0c;不可重复读&#xff0c;幻读现象。 1. 脏读 一个事务在处理过程中读取了另外一个事务未提交的数据。若另外一个事务回滚&#xff0c;则读取到的数据是无效的&#xff0c;又称为脏读。 2. 不可重复读 在一个事务…...

25/1/15 嵌入式笔记 初学STM32F108

GPIO初始化函数 GPIO_Ini&#xff1a;初始化GPIO引脚的模式&#xff0c;速度和引脚号 GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA的引脚0 GPIO输出控制函数 GPIO_SetBits&#xff1a;将指定的GPIO引脚设置为高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将GPIO…...

Stitches项目架构分析:RequireJS模块化设计与Grunt构建流程完全指南 [特殊字符]

Stitches项目架构分析&#xff1a;RequireJS模块化设计与Grunt构建流程完全指南 &#x1f680; 【免费下载链接】stitches HTML5 Sprite Sheet Generator 项目地址: https://gitcode.com/gh_mirrors/sti/stitches Stitches是一个基于HTML5的雪碧图生成器&#xff0c;它采…...

别再手动改路径了!用LabVIEW + MATLAB Script做自动化测试,这份环境配置指南让你效率翻倍

LabVIEW与MATLAB深度整合&#xff1a;构建自动化测试系统的工程实践指南在工业自动化与测试测量领域&#xff0c;LabVIEW和MATLAB的组合堪称黄金搭档。LabVIEW擅长硬件接口和实时控制&#xff0c;而MATLAB在算法开发和数据分析方面具有无可比拟的优势。本文将深入探讨如何将两者…...

终极鼠标连点器使用指南:3分钟掌握高效自动化技巧

终极鼠标连点器使用指南&#xff1a;3分钟掌握高效自动化技巧 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界面美观 &#xff0c;操作…...

[智能体-81]:工程化智能体 = 模型做脑力拆解 + 框架做流程落地。前者是决策者,后者是管理者,tools/function call是内部员工;mcp server是外部资源;

一、全角色人设 & 对应技术组件角色定位对应技术模块核心职责决策者&#xff08;脑力大脑&#xff09;大模型 LLM理解目标、任务拆解、逻辑判断、分支决策、内容生成&#xff0c;负责 “想方案、定步骤”管理者&#xff08;流程总管&#xff09;智能体编排框架&#xff08;…...

口碑最好的AI论文写作工具推荐(从文献整理到论文成稿全流程)适合全体毕业生

还在为选题方向纠结、文献资料翻找耗时、开题报告无从下手、论文框架反复修改、查重率居高不下、降重过程痛苦不堪&#xff0c;甚至答辩PPT还要临时抱佛脚&#xff1f;作为学术新手、应届生或本科硕士毕业生&#xff0c;面对论文写作的重重关卡&#xff0c;流程复杂、操作门槛高…...

3分钟告别英文恐惧:Android Studio中文界面轻松切换指南

3分钟告别英文恐惧&#xff1a;Android Studio中文界面轻松切换指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 你是否曾经因…...

告别鼠标点击,微博图片批量下载的轻松方案

告别鼠标点击&#xff0c;微博图片批量下载的轻松方案 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 还记得那个周末的下午吗&#xff1f;你喜欢的博主发布了九宫格美…...

ArduPilot飞行模式实战:从代码角度看Stabilize、Acro、Loiter模式如何切换(附避坑指南)

ArduPilot飞行模式深度解析&#xff1a;从状态机到实战避坑指南 在开源飞控领域&#xff0c;ArduPilot以其强大的飞行模式系统著称。不同于普通用户只需了解模式功能&#xff0c;开发者更需要掌握模式切换的底层机制——这直接关系到飞行安全与二次开发效率。本文将带您深入Sta…...

8款网盘直链下载助手:彻底告别限速烦恼,实现高速下载自由

8款网盘直链下载助手&#xff1a;彻底告别限速烦恼&#xff0c;实现高速下载自由 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移…...

5分钟免费搞定HS2汉化:Honey Select 2完整中文补丁终极教程

5分钟免费搞定HS2汉化&#xff1a;Honey Select 2完整中文补丁终极教程 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日文界面而烦恼吗…...