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

164. 最大间距

题目链接:164. 最大间距 - 力扣(LeetCode)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解析:

排序后相邻数字最大间距 要 >= ceil((max - min) / (n - 1))

然后分桶,保持每个桶的max和min即可

class Solution {
public:int maximumGap(vector<int>& nums) {if (nums.size() == 1) return 0;int min_v = nums[0], max_v = nums[0];int n = nums.size();int same_flag = true;for (int i = 1; i < n; i++) {min_v = min(nums[i], min_v);max_v = max(nums[i], max_v);if (nums[i] != nums[i - 1]) {same_flag = false;}}if (same_flag) return 0;int segment = ceil((max_v - min_v) / (double) (n - 1));vector<vector<int>> terminal;terminal.reserve(n + 1);for (int i = 0; i <= n; i++) {vector<int> inner;terminal.push_back(inner);terminal[i].push_back(-1);terminal[i].push_back(0x7fffffff);}for (int i = 0; i < n; i++) {int d = (nums[i] - min_v) / segment;terminal[d][0] = max(terminal[d][0], nums[i]);terminal[d][1] = min(terminal[d][1], nums[i]);}int pre_max = -1;int ret = -1;for (int i = 0; i <= n; i++) {if (terminal[i][0] == -1) continue;cout << terminal[i][1] << "  " << terminal[i][0] << endl;if (pre_max == -1) {pre_max = terminal[i][0];} else {ret = max(ret, terminal[i][1] - pre_max);pre_max = terminal[i][0];}}return ret;}
};

 

http://www.rkmt.cn/news/44059.html

相关文章:

  • 2025大厂高频软件测试面试真题(附答案)
  • LiveBindings绑定到漂亮的TCombobox
  • 深入解析:眼控交互:ErgoLAB新一代人机交互方式
  • 2025年11月杭州集训记
  • Bash 入门指南-简介和常见命令
  • 最小多项式与线性递推
  • to kill a mocking bird
  • Linux 内核启动日志输出阶段分析
  • flask: 封装返回json的统一格式
  • 百度网盘把Windows下的习惯带进了Linux
  • 做题记录(Nov.)
  • 251108 会议整理
  • 阿里云智能集团首席科技官云栖大会要点总结
  • 自指自洽,天职天命,苦乐年华
  • 线段树(p1083)
  • 初识PPO
  • 现今除甲醛机构选哪家?深度分析
  • 轻松可视化信息的利器——JSON Crack
  • 详细介绍:C++微基础备战蓝桥杯string篇10.5
  • [ jupyter conda 环境]
  • 深入解析:仿mudou——Connection模块(连接管理)
  • 以太坊私有链搭建与智能合约部署指南 - 教程
  • 2025年11月中国伸缩门制造企业技术实力排行榜TOP5
  • 我目前所理解的“生成式认知主体”
  • P10627 中暑
  • C语言“变量”与Python“Name”:跨语言核心概念及内存模型辨析
  • MarkDown Day1
  • 逆向基础--C++介绍与环境 (01)
  • 【技术术语】惊群效应
  • 使用 gitee 完整简要演示 20251108