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

2419.按位与最大的最长子数组

Problem: 2419. 按位与最大的最长子数组

思路

子数组按位与的结果,不会超过子数组里的最大值(因为 a & b ≤ max(a, b))。 进一步推导,整个数组最大按位与的结果就是数组本身的最大值。 因为最大的那个元素自己作为子数组时,按位与结果就是它自己,其他子数组的按位与结果不可能超过它 。

解题过程

  1. 找到数组的最大值 max_and(这是 “按位与结果最大” 的目标值 )。
  2. 找到连续等于 max_and最长子数组长度(因为只有这些子数组的按位与结果会等于 max_and,其他子数组的按位与结果必然更小 )。

复杂度

  • 时间复杂度: O(n)
  • 空间复杂度: O(1)
class Solution {
public:int longestSubarray(vector<int>& nums) {int maxval = *max_element(nums.begin(), nums.end());int ans = 0;int cur_len = 0;for (int i = 0; i < nums.size(); i++) {if (nums[i] == maxval) {cur_len++;ans = max(ans, cur_len);} else {cur_len = 0;}}return ans;}
};
http://www.dtcms.com/a/307133.html

相关文章:

  • duiLib 自定义资源目录
  • 限流算法详解:固定窗口、滑动窗口、令牌桶与漏桶算法全面对比
  • P1036 [NOIP 2002 普及组] 选数
  • 结合C++红黑树与AI人工智能的应用
  • Linux 系统日志管理与时钟同步实用指南
  • TCP和UDP编程的主要区别
  • 当人生低谷无人帮助时,如何独自奏响人生乐章
  • Linux系统编程Day1-- Linux系统的概念,主要内容
  • 查看遥控器6通道(以及其他通道)的实际PWM值
  • 洛谷 P1601 A+B Problem(高精)普及-
  • Datawhale AI夏令营 大模型技术task3 稍稍提分
  • 密码学安全性简介
  • LLM—— 基于 MCP 协议(Stdio 模式)的工具调用实践
  • 从一开始的网络攻防(十三):WAF入门到上手
  • 疏老师-python训练营-Day30模块和库的导入
  • Mysql事务基础
  • 通俗易懂的解释G1垃圾收集器
  • 学习Markdown
  • vulhub-Thales靶场攻略
  • git的开发流程
  • # C语言:20250730学习(二级指针)
  • OneCode 3.0 快速视图在 DDD 领域模型中的应用研究
  • 「Linux命令基础」管理文件
  • 【动态规划 | 多状态问题】动态规划求解多状态问题
  • 7. 传输层协议 TCP
  • 低速信号设计之 MDIO 篇
  • 7.5将模块分离到不同的文件中
  • FastAPI入门:表单数据、表单模型、请求文件、请求表单与文件
  • 电商项目统一认证方案设计与实战
  • 《JWT + OAuth2统一认证授权:企业级单点登录方案》