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

Leetcode 2871. Split Array Into Maximum Number of Subarrays

  • Leetcode 2871. Split Array Into Maximum Number of Subarrays
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2871. Split Array Into Maximum Number of Subarrays

1. 解题思路

这一题实现上其实还是比较简单的,就是一个贪婪算法,主要就是思路上需要想想清楚。

显然,如果所有数的与操作结果不为0,那么要使得结果最小,那么有且只有一种分法,那就是完全不进行切割,否则切割之后的两个子序列一定均不为0,其和必然大于不切分的结果。

因此,要考虑的就是所有数的与操作结果为0的情况,此时必然有所有分割之后的子串的与操作结果均为0,此时,我们用一个贪婪算法找到所有切割之后与操作结果为0的子串即可。

2. 代码实现

给出python代码实现如下:

class Solution:def maxSubarrays(self, nums: List[int]) -> int:cnt = 0is_start = Truefor x in nums:if is_start:s = xis_start = Falseelse:s = s & xif s == 0:cnt += 1is_start = Truereturn max(cnt, 1)

提交代码评测得到:耗时806ms,占用内存26.8MB。

http://www.lryc.cn/news/181087.html

相关文章:

  • Java基础---第十三篇
  • Java 文档注释
  • 【多媒体技术与实践】多媒体计算机系统概述
  • DirectX 3D C++ 圆柱体的渲染(源代码)
  • 搭建前端框架
  • 2310C++构造对象
  • nginx多文件组织
  • 扩容LVM卷导致lvm元数据丢失的恢复过程
  • 【MySQL教程】| (1-1) 2023MySQL-8.1.0 安装教程
  • 数据大屏定时请求后端数据
  • 数据结构--队列
  • Python绘图系统25:新增8种绘图函数
  • (二) gitblit用户使用教程
  • 8.3Jmeter使用json提取器提取数组值并循环(循环控制器)遍历使用
  • SNERT预备队招新CTF体验赛-Misc(SWCTF)
  • MySql017——组合查询
  • 【0224】源码分析RelFileNode对smgr访问磁盘表文件的重要性(2)
  • 2310C++λ中完美转发
  • 【C++11】std::function 包装器(又叫适配器),std::bind 绑定
  • Linux系统编程系列之线程
  • CV面试知识点总结
  • Centos一键安装、切换各版本JDK
  • JavaWeb项目:smbms(mysql)
  • shell脚本的多线程介绍
  • 周记之反思
  • 信创办公–基于WPS的EXCEL最佳实践系列 (数据整理复制粘贴)
  • 二极管的直流等效电路和微变等效电路
  • Python无废话-基础知识字典Dictionary详讲
  • ChatGPT多模态升级,支持图片和语音,体验如何?
  • (SAR)Sentinel-1影像自动下载