164. 最大间距(bucket桶)
链接164. 最大间距题解164. 最大间距 - 力扣LeetCodeclass Solution { public: int maximumGap(vectorint nums) { int n nums.size(); if (n 2) { return 0; } int minVal *min_element(nums.begin(), nums.end()); int maxVal *max_element(nums.begin(), nums.end()); int d max(1, (maxVal - minVal) / (n - 1)); // 两个桶之间的间隙 int bucketSize (maxVal - minVal) / d 1; // 桶的个数 vectorpairint, int bucket(bucketSize, {-1, -1}); // 存储 (桶内最小值桶内最大值) 对(-1, -1) 表示该桶是空的 for (int i 0; i n; i) { // 需要放入桶的下标 int idx (nums[i] - minVal) / d; // 桶之前没有元素 if (bucket[idx].first -1) { bucket[idx].first bucket[idx].second nums[i]; } else { bucket[idx].first min(bucket[idx].first, nums[i]); bucket[idx].second max(bucket[idx].second, nums[i]); } } int ret 0; int prev -1; // 比较相邻两个有值的桶 for (int i 0; i bucketSize; i) { if (bucket[i].first -1) continue; if (prev ! -1) { ret max(ret, bucket[i].first - bucket[prev].second); } prev i; } return ret; } };怎么理解class Solution { public: int maximumGap(vectorint nums) { int len nums.size(); if (len 2) return 0; int max_value *max_element(nums.begin(), nums.end()); int min_value *min_element(nums.begin(), nums.end()); if (max_value min_value) return 0; // 桶大小 ceil((maxV - minV) / (n-1)) int bucket_size max(1, (int)ceil((double)(max_value - min_value) / (len - 1))); // 桶数量 int bucket_count (max_value - min_value) / bucket_size 1; // 每个桶存储 {最小值, 最大值}初始化为 {INT_MAX, INT_MIN} vectorpairint, int buckets(bucket_count, {INT_MAX, INT_MIN}); for (int num : nums) { int index (num - min_value) / bucket_size; buckets[index].first min(buckets[index].first, num); buckets[index].second max(buckets[index].second, num); } int result 0; int prev_max min_value; for (int i 0; i bucket_count; i) { if (buckets[i].first INT_MAX) continue; // 空桶跳过 // 当前桶的最小值 - 上一个非空桶的最大值 result max(result, buckets[i].first - prev_max); prev_max buckets[i].second; } return result; } };

相关新闻

终极免费视频下载指南:如何用VideoDownloadHelper轻松保存网页视频

终极免费视频下载指南:如何用VideoDownloadHelper轻松保存网页视频

终极免费视频下载指南:如何用VideoDownloadHelper轻松保存网页视频 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否经常遇到…

2026/7/12 13:37:57 阅读更多 →
终极Palworld存档编辑指南:免费开源工具实现游戏数据可视化修改

终极Palworld存档编辑指南:免费开源工具实现游戏数据可视化修改

终极Palworld存档编辑指南:免费开源工具实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想过个性化…

2026/7/12 13:35:57 阅读更多 →
材质提示词工程全解析,从基础纹理到物理级PBR映射——附2024最新材质Prompt原子库(仅限前500名领取)

材质提示词工程全解析,从基础纹理到物理级PBR映射——附2024最新材质Prompt原子库(仅限前500名领取)

更多请点击: https://intelliparadigm.com 第一章:材质提示词工程的核心范式与Midjourney渲染底层逻辑 材质提示词工程并非简单堆砌形容词,而是对Midjourney图像生成系统中材质语义建模机制的逆向解构与精准操控。其核心范式建立在“材质-光…

2026/7/12 13:33:57 阅读更多 →

最新新闻

PIC18F4525驱动EPT-14A4005P压电蜂鸣器设计指南

PIC18F4525驱动EPT-14A4005P压电蜂鸣器设计指南

1. 项目概述:基于PIC18F4525与EPT-14A4005P的警报系统设计在工业控制、安防监控和智能家居等领域,清晰可辨的音频警报是保障系统可靠性的关键组件。这次我们要探讨的是使用Microchip的PIC18F4525微控制器驱动Sanco Electronics的EPT-14A4005P压电蜂鸣器实…

2026/7/12 14:34:22 阅读更多 →
Claude Code实操手记:上下文驱动的代码重构与决策加速

Claude Code实操手记:上下文驱动的代码重构与决策加速

1. 这不是“AI编程助手”测评,而是一线开发者用Claude Code三个月后的实操手记Claude Code不是某个独立产品,而是Anthropic在2024年中旬面向开发者推出的、深度集成进Claude 3.5 Sonnet模型能力的代码协作模式——它不叫“Claude Code”,但社…

2026/7/12 14:30:20 阅读更多 →
HZTXT.shx 字体改造实战:3步手动拼接生僻字“珽”,解决CAD显示问号

HZTXT.shx 字体改造实战:3步手动拼接生僻字“珽”,解决CAD显示问号

HZTXT.shx字体改造实战:3步手动拼接生僻字“珽”解决CAD显示问号在CAD设计工作中,遇到生僻字显示为问号的情况并不少见。特别是使用HZTXT.shx这类矢量字体时,由于字体库容量有限,很多生僻汉字往往无法正常显示。本文将详细介绍一种…

2026/7/12 14:30:20 阅读更多 →
SolidWorks 2020 小金球开启:NVIDIA/AMD 双显卡 3 步注册表修改法(附 Workarounds 值查询)

SolidWorks 2020 小金球开启:NVIDIA/AMD 双显卡 3 步注册表修改法(附 Workarounds 值查询)

SolidWorks 2020 小金球功能深度解锁指南:跨显卡通用解决方案 在工业设计和机械工程领域,视觉呈现的真实感直接影响设计评审和方案沟通的效率。SolidWorks 2020的RealView渲染功能(俗称"小金球")能够显著提升模型展示的…

2026/7/12 14:30:20 阅读更多 →
【预定SCI2区】基于凌日优化算法TSOA-BiTCN-BiGRU-Attention的风电预测算法研究Matlab实现

【预定SCI2区】基于凌日优化算法TSOA-BiTCN-BiGRU-Attention的风电预测算法研究Matlab实现

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。🍎个人主页:Matlab科研工作室🍊个人信条:格物致知。🔥 内容介绍摘要: 风电预…

2026/7/12 14:28:20 阅读更多 →
【预定SCI2区】基于龙格库塔优化算法RUN-BiTCN-BiGRU-Attention的风电预测算法研究Matlab实现

【预定SCI2区】基于龙格库塔优化算法RUN-BiTCN-BiGRU-Attention的风电预测算法研究Matlab实现

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 🔥 内容介绍 摘要: 风…

2026/7/12 14:28:20 阅读更多 →

日新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/12 0:03:13 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/12 0:03:14 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/12 0:03:14 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/12 0:03:13 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/12 0:03:14 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/12 0:03:14 阅读更多 →

月新闻