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

Kimi LeetCode 3495. 使数组元素都变为零的最少操作次数 Java实现

这是 LeetCode 3495 的 Java 实现。注意这道题与搜索结果中第一个 GFG 题目(数组减1操作)完全不同,3495 的操作是将两个数替换为 `floor(a/4)` 和 `floor(b/4)`。

题目理解

- 每个查询 `[l, r]` 定义一个数组 `nums = [l, l+1, ..., r]`
- 每次操作选两个数 `a, b`,替换为 `⌊a/4⌋` 和 `⌊b/4⌋`
- 求将所有元素变为 0 的最少操作次数

核心思路

一个数 `x` 变为 0 需要的操作次数是满足 `4^p > x` 的最小 `p`(即 `⌊log₄x⌋ + 1`)。

对于区间 `[l, r]`:
- 设 `s` 为区间内所有元素各自所需操作次数之和
- 设 `mx` 为区间内最大操作次数(即 `r` 所需次数)
- 每次操作最多同时处理两个元素,所以至少需要 `⌈s/2⌉` 次操作
- 但某些元素(如 `r`)需要 `mx` 次操作才能归零,所以答案为 `max(⌈s/2⌉, mx)`

用前缀和优化:定义 `f(x)` 为 `[1, x]` 所有元素操作次数之和,则 `s = f(r) - f(l-1)`,`mx = f(r) - f(r-1)`。

Java 代码

```java
class Solution {
public long minOperations(int[][] queries) {
long ans = 0;
for (int[] q : queries) {
int l = q[0], r = q[1];
long s = f(r) - f(l - 1); // 区间总操作次数
long mx = f(r) - f(r - 1); // 最大元素的操作次数
ans += Math.max((s + 1) / 2, mx); // max(ceil(s/2), mx)
}
return ans;
}

// 计算 [1, x] 所有数的操作次数之和
private long f(long x) {
long res = 0;
long p = 1; // 4的幂次
int i = 1; // 当前区间需要的操作次数
while (p <= x) {
// 区间 [p, min(4p-1, x)] 内的数都需要 i 次操作
long cnt = Math.min(p * 4 - 1, x) - p + 1;
res += cnt * i;
i++;
p *= 4;
}
return res;
}
}
```

复杂度分析

- 时间复杂度:`O(q · log₄M)`,其中 `q` 为查询数,`M ≤ 10⁹`
- 空间复杂度:`O(1)`

关键说明

`f(x)` 将 `[1, x]` 按 4 的幂次分段:
- `[1, 3]`:需要 1 次操作(`4¹ > x`)
- `[4, 15]`:需要 2 次操作(`4² > x`)
- `[16, 63]`:需要 3 次操作(`4³ > x`)
- 以此类推...

每段长度为 `3·4^(i-1)`,段内每个数贡献 `i` 次操作。

http://www.jsqmd.com/news/1135417/

相关文章:

  • WebSocket 安全实战(二):多层防御穿透攻击模型与长连接底层架构缺陷深度解析
  • KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
  • STM32L081CB与Si4731收音机模块开发指南
  • ClaudeCode五分钟安装教程!有手就能用上顶级AI编程助手
  • Gazebo仿真PX4+3D激光雷达的搭建
  • 分布式记忆协调_agent-memory-coordinator
  • AI中的表格怎么导出——“AI导出鸭”,深度测评来了!
  • 低成本快速搭建一个博客网站(分享记录)
  • 【单智能体】人寿保险保障顾问案例讲解(附完整源码)
  • YOLOv8可回收塑料识别分类检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)
  • 如何在Windows上优雅处理iPhone拍摄的HEIF照片?HEIF Utility一站式解决方案
  • AI 很强,但为什么还会“忘”?看懂上下文,你就知道怎么和它合作
  • de风——【从零开始学习Linux】(三):全面总结瞧一瞧,权限管理没烦恼
  • GitHub CICD流水线_agent-ops-cicd-github
  • 豆包接入抖音生态实战指南
  • Grok 复制有星号 文档导出乱码难整理?AI 导出鸭一站式清除格式瑕疵
  • Windows 10 WSL2 安装问题排查与解决全记录
  • 抖音无水印视频下载器:3分钟学会批量保存高清内容
  • 新手友好!基于零代码平台浏览器市场与用户画像分析-数据加工(1)全流程演示
  • 27. 【C语言】编写可移植的头文件与模块
  • 【社会科学】【企业管理】【管理科学】第二十篇 售前-销售-研发-交付-财务-会计-律师-其他员工的配合模型01
  • 终极跨平台图像格式兼容解决方案:开源HEIF处理工具技术深度解析与实战指南
  • Level 4自动驾驶系统设计15——NCAP/NOA场景 2
  • REPENTOGON深度解析:解锁以撒结合模组开发的全新境界
  • Presenting Large Language Models as Companions Affects What Mental Capacities People Attribute to...
  • Centos系统学习
  • web应用技术作业7
  • 行业落地案例:白帽GEO优化赋能艺考机构全域增长|途耀传媒携手征途艺考达成战略合作
  • ChatGPT 转 Word 工具推荐?AI 导出鸭硬核转换,Mermaid / 公式全兼容
  • 顺序表,链表,复杂度相关的OJ题