🗒️2438. 二的幂数组中查询范围内的乘积
2025-3-3
| 2025-3-3
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Mar 3, 2025 03:08 AM
给你一个正整数 n ,你需要找到一个下标从 0 开始的数组 powers ,它包含 最少 数目的 2 的幂,且它们的和为 n 。powers 数组是 非递减 顺序的。根据前面描述,构造 powers 数组的方法是唯一的。
同时给你一个下标从 0 开始的二维整数数组 queries ,其中 queries[i] = [lefti, righti] ,其中 queries[i] 表示请你求出满足 lefti <= j <= righti 的所有 powers[j] 的乘积。
请你返回一个数组 answers ,长度与 queries 的长度相同,其中 answers[i]是第 i 个查询的答案。由于查询的结果可能非常大,请你将每个 answers[i] 都对 109 + 7 取余 。

位运算

前缀和+快速幂

这个思维有点问题,不需要考虑每个位,只需要考虑存在 1 的位。
调整代码
优化,不需要遍历每一位

前缀和 + 打表

📎 参考

  • 【题单】位运算
  • 1680. 连接连续二进制数字2044. 统计按位或能得到最大值的子集数目
    Loading...