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

千问 LeetCode 1862.向下取整数对和 public int sumOfFlooredPairs(int[] nums)

这是一道经典的算法题考察的是前缀和与数论分块倍数枚举的思想。如果直接暴力枚举每一对 (i, j)时间复杂度是 O(N^2)在数据量较大时会超时。我们需要转换思路不直接计算每一对而是计算每一个数字作为分母时它能对总和贡献多少。以下是完整的 Java 代码实现及详细解析 核心思路1. 统计频率首先统计数组中每个数字出现的次数。2. 前缀和预处理计算前缀和数组这样我们可以在 O(1) 的时间内查询任意区间 [L, R] 内有多少个数组中的元素。3. 枚举分母与倍数* 遍历每一个出现过的数字 x 作为分母。* 对于分母 x我们枚举它的倍数 k即商为 k。* 当分母为 x商为 k 时被除数分子的取值范围是 [k cdot x, (k1) cdot x - 1]。* 利用前缀和快速算出这个范围内有多少个数字乘以 k商和 x 的出现次数累加到答案中。 Java 代码实现import java.util.Arrays;class Solution {private static final int MOD 1000000007;public int sumOfFlooredPairs(int[] nums) {// 1. 找到数组中的最大值确定计数数组的大小int maxVal Arrays.stream(nums).max().getAsInt();// 2. 统计每个数字出现的频率// count[i] 表示数字 i 在 nums 中出现的次数int[] count new int[maxVal 1];for (int num : nums) {count[num];}// 3. 计算前缀和// prefixSum[i] 表示数值在 [0, i] 范围内的元素总个数// 这样可以在 O(1) 时间内查询区间 [L, R] 内的元素个数int[] prefixSum new int[maxVal 1];prefixSum[0] count[0];for (int i 1; i 0 ? prefixSum[lowerBound - 1] : 0);if (countInRange 0) {// 贡献值 (该范围内元素个数) * (商 k) * (分母出现的次数)// 分母出现次数是因为数组中可能有多个相同的分母long contribution (long) countInRange * k * count[denominator];ans (ans contribution) % MOD;}}}return (int) ans;}} 详细步骤解析1. 为什么使用前缀和题目要求计算 sum lfloor frac{nums[i]}{nums[j]} rfloor。如果我们固定分母 nums[j] x那么对于不同的分子 nums[i]lfloor frac{nums[i]}{x} rfloor 的结果是分段的。例如 x2* 分子在 [0, 1]结果为 0* 分子在 [2, 3]结果为 1* 分子在 [4, 5]结果为 2* ...* 分子在 [2k, 2k1]结果为 k前缀和数组 prefixSum 让我们能瞬间算出数组中有多少个元素落在 [2k, 2k1] 这个区间内而不需要遍历整个数组。2. 复杂度分析* 时间复杂度O(M log M)其中 M 是数组中的最大值。* 外层循环遍历分母最多 M 次。* 内层循环枚举倍数商对于分母 x循环次数约为 M/x。* 总次数约为 M/1 M/2 M/3 ... M/M M times (1 1/2 ... 1/M) approx M ln M。* 空间复杂度O(M)用于存储频率数组和前缀和数组。3. 举例说明假设 nums [2, 5, 9]* 频率count[2]1, count[5]1, count[9]1。* 当分母为 2 时 (count[2]1)* 商为 1分子范围 [2, 3]。数组中有 1 个 (即2)。贡献 1 times 1 times 1 1。* 商为 2分子范围 [4, 5]。数组中有 1 个 (即5)。贡献 1 times 2 times 1 2。* 商为 3分子范围 [6, 7]。无。* 商为 4分子范围 [8, 9]。数组中有 1 个 (即9)。贡献 1 times 4 times 1 4。* 分母为 2 的总贡献1247。* 当分母为 5 时* 商为 1分子范围 [5, 9]。有 2 个 (5, 9)。贡献 2 times 1 times 1 2。* 当分母为 9 时* 商为 1分子范围 [9, 17]。有 1 个 (9)。贡献 1 times 1 times 1 1。* 总和7 2 1 10。这个逻辑与题目示例完全吻合。

相关文章:

千问 LeetCode 1862.向下取整数对和 public int sumOfFlooredPairs(int[] nums)

这是一道经典的算法题,考察的是前缀和与数论分块(倍数枚举)的思想。如果直接暴力枚举每一对 (i, j),时间复杂度是 O(N^2),在数据量较大时会超时。我们需要转换思路:不直接计算每一对,而是计算每…...

千问 LeetCode 1851.包含每个查询的最小区间 public int[] minInterval(int[][] intervals, int[] queries)

这道题是经典的离线查询(Offline Query)配合优先队列(PriorityQueue)的题目。核心思路如果我们对每个查询都遍历一遍所有区间,时间复杂度是 O(Q times N),会超时。我们需要利用排序和堆来优化。策略&#x…...

3分钟快速上手:免费解锁网易云音乐NCM格式的完整指南

3分钟快速上手:免费解锁网易云音乐NCM格式的完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的歌曲只能在特定客户端播放而烦恼吗?ncmdump是你需要的终极解决方案!这…...

Qwen3-4B-Thinking-Gemini-Distill惊艳效果:思考过程中自动识别并标注关键前提假设

Qwen3-4B-Thinking-Gemini-Distill惊艳效果:思考过程中自动识别并标注关键前提假设 1. 模型介绍 Qwen3-4B-Thinking-Gemini-Distill是基于Qwen3-4B-Thinking-2507的社区蒸馏版本,由TeichAI使用Gemini 2.5 Flash生成的5440万tokens监督微调而成。这个推…...

5分钟掌握百度网盘直链解析:告别限速的终极解决方案

5分钟掌握百度网盘直链解析:告别限速的终极解决方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否厌倦了百度网盘令人抓狂的下载速度限制?想要…...

Blender 3MF插件终极指南:从设计到3D打印的完整解决方案

Blender 3MF插件终极指南:从设计到3D打印的完整解决方案 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 3D打印爱好者们,你是否曾为Blender模型导…...

Pixel Agents:将AI编程助手可视化为像素办公室的VS Code扩展

1. 项目概述:当AI智能体走进像素办公室如果你和我一样,每天在VS Code里和Claude Code这类AI编程助手打交道,看着它在终端里一行行地输出代码、执行命令,你可能会觉得这个过程虽然高效,但总有点……冷冰冰的。我们与AI的…...

基于Agent-Dev框架的智能体开发:从模块化设计到生产部署实践

1. 项目概述:从“Agent-Dev”看智能体开发的新范式最近在GitHub上看到一个挺有意思的项目,叫little51/agent-dev。光看名字,你可能会觉得这又是一个关于AI智能体开发的常规工具库。但当我深入进去,把它的代码、文档和社区讨论都翻…...

Nordic nRF7002 EBII Wi-Fi 6扩展板解析与应用

1. Nordic nRF7002 EBII Wi-Fi 6扩展板深度解析作为Nordic Semiconductor最新推出的Wi-Fi 6扩展解决方案,nRF7002 EBII代表了低功耗物联网设备无线连接技术的重要演进。这款扩展板专为nRF54L系列开发套件设计,在原有nRF7002基础上实现了多项关键升级。提…...

终极指南:如何使用XUnity.AutoTranslator为Unity游戏添加智能翻译

终极指南:如何使用XUnity.AutoTranslator为Unity游戏添加智能翻译 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 想要畅玩日文、韩文或其他外语Unity游戏却苦于语言障碍?XUnity.A…...

ResourceOverride终极指南:掌控网页资源的强大调试神器

ResourceOverride终极指南:掌控网页资源的强大调试神器 【免费下载链接】ResourceOverride An extension to help you gain full control of any website by redirecting traffic, replacing, editing, or inserting new content. 项目地址: https://gitcode.com/…...

10个免费Illustrator脚本终极指南:彻底改变你的设计工作流

10个免费Illustrator脚本终极指南:彻底改变你的设计工作流 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 你是否厌倦了在Adobe Illustrator中重复执行繁琐的操作&#…...

如何彻底清理显卡驱动?Display Driver Uninstaller终极解决方案

如何彻底清理显卡驱动?Display Driver Uninstaller终极解决方案 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uni…...

基于 shadcn/ui 的设计系统加速器:Creative Tim UI 实战指南

1. 项目概述:当 shadcn/ui 遇上设计系统 如果你和我一样,是个常年泡在 React 和 Next.js 项目里的前端开发者,那你肯定对 shadcn/ui 不陌生。它提供了一套“拥有代码”的组件哲学,让我们能基于 Radix UI 和 Tailwind CSS&#…...

Pixel Language Portal应用场景:跨境SaaS产品实时多语种客户支持响应

Pixel Language Portal应用场景:跨境SaaS产品实时多语种客户支持响应 1. 跨境业务中的语言挑战 在全球化的商业环境中,跨境SaaS产品面临的最大挑战之一就是语言障碍。当客户来自不同国家和地区时,如何提供及时、准确的多语言支持成为企业必…...

AgentScope Runtime Java实战:AI智能体安全部署与生产级工程化指南

1. 项目概述与核心价值最近在折腾AI智能体应用,从原型验证到生产部署,中间那道“鸿沟”可把我折腾得够呛。相信很多同行也有同感:本地跑个LangChain或AgentScope的Demo,调用几个API,看起来挺美;但一旦想把智…...

Qwen3-4B-Thinking-Gemini-Distill惊艳案例:艺术创作指令(如‘赛博朋克水墨画’)推理分解

Qwen3-4B-Thinking-Gemini-Distill惊艳案例:艺术创作指令(如赛博朋克水墨画)推理分解 1. 模型简介与核心能力 Qwen3-4B-Thinking-2507-Gemini-Distill是基于Qwen3-4B-Thinking-2507的社区蒸馏版本,由TeichAI使用Gemini 2.5 Flas…...

Arm Total Compute中断系统架构与实战解析

1. Arm Total Compute中断系统架构解析在Arm Total Compute 2022参考设计中,中断管理系统采用分层架构设计,由系统控制处理器(SCP)作为中央协调单元。SCP内置的Cortex-M3处理器搭载了增强型NVIC控制器,支持多达240个中断输入,其中…...

如何快速掌握LiveDraw:专业屏幕实时标注工具的完整指南

如何快速掌握LiveDraw:专业屏幕实时标注工具的完整指南 【免费下载链接】live-draw A tool allows you to draw on screen real-time. 项目地址: https://gitcode.com/gh_mirrors/li/live-draw LiveDraw是一款专为Windows用户设计的专业屏幕实时标注工具&…...

安卓虚拟摄像头魔法:如何让手机摄像头看见你想要的画面

安卓虚拟摄像头魔法:如何让手机摄像头看见你想要的画面 【免费下载链接】com.example.vcam 虚拟摄像头 virtual camera 项目地址: https://gitcode.com/gh_mirrors/co/com.example.vcam 想象一下,在视频会议中展示一段精心准备的演示视频&#xf…...

Apache Commons FileUpload:企业级Java文件上传解决方案的架构演进与实践

Apache Commons FileUpload:企业级Java文件上传解决方案的架构演进与实践 【免费下载链接】commons-fileupload Apache Commons FileUpload is a robust, high-performance, file upload capability to your servlets and web applications 项目地址: https://git…...

英雄联盟玩家必备:LeagueAkari 终极本地自动化工具完整指南

英雄联盟玩家必备:LeagueAkari 终极本地自动化工具完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari 是一款专为…...

Keil MDK与STM32开发环境搭建与优化指南

1. Keil MDK与STM32开发环境概述对于嵌入式开发者而言,选择一款高效的开发工具链往往能事半功倍。Keil MDK(Microcontroller Development Kit)作为Arm官方推荐的集成开发环境,已经成为STM32开发的主流选择之一。特别是在Cortex-M0…...

MogFace人脸检测工具入门指南:绿色检测框/置信度标注/人脸总数统计三步到位

MogFace人脸检测工具入门指南:绿色检测框/置信度标注/人脸总数统计三步到位 1. 工具简介:你的本地人脸识别助手 想象一下,你有一张团队大合影,想快速知道里面有多少人;或者你正在处理一批照片,需要自动找…...

​zoom会经常不定期的更新,不更新无法使用。​

zoom会经常不定期的更新,不更新无法使用。...

OS Agent技术解析:让AI通过视觉与操作系统交互,实现自动化操作

1. 从“能看”到“能干”:OS Agent如何让AI真正学会使用电脑和手机如果你关注AI领域,最近一年肯定被各种“智能体”刷屏了。从能写代码的Devin,到能帮你订机票、查邮件的AI助手,似乎AI离“数字打工人”的梦想越来越近。但不知道你…...

机器学习工程师必备的Docker容器化实践指南

1. 为什么机器学习工程师需要Docker?三年前我刚加入一家AI创业公司时,遇到过这样的场景:团队花了两个月训练的推荐模型,在测试环境表现优异,但部署到生产环境后准确率直接腰斩。排查三天后发现是CUDA版本不匹配导致GPU…...

AgentFlow:模块化智能体框架与Flow-GRPO强化学习实战解析

1. 项目概述与核心价值 如果你最近在关注大语言模型和智能体领域,可能会发现一个明显的瓶颈:现有的工具增强型推理方法,比如让一个LLM模型自己思考、自己调用工具,在解决复杂、多步骤的“长视野”任务时,往往力不从心…...

机器学习模型结果应用与业务落地方案

1. 机器学习结果应用全景指南当模型训练完成并产出预测结果时,许多从业者会陷入"然后呢?"的困惑。我曾见过价值百万的机器学习模型因为结果使用不当而被束之高阁。本文将分享从模型输出到业务落地的完整链路,涵盖工业界验证过的七种…...

基于OpenResty的API网关Lunaroute:动态路由与配置热更新实践

1. 项目概述与核心价值最近在折腾微服务架构下的流量治理,发现一个挺有意思的开源项目erans/lunaroute。简单来说,这是一个基于 Lua 的、轻量级的 API 网关和动态路由引擎。如果你正在为 Nginx 或者 OpenResty 寻找一个更灵活、更“云原生”的配置管理方…...