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

LeetCode HOT100 - 下一个排列

考虑下一个排列应该是什么样的

下一个排列要变大,而且变大的应该尽量少

于是前缀应该尽可能不变,也就是调整的位置应该尽可能靠后

于是我们倒序去找,因为前缀不变,所以变的那个数字就是和后缀中大于它的数交换

所以就是后缀中存在大于它的数,这种情况下我们可以交换

因此不妨维护后缀最大值,这样当前元素小于那个最大值说明这个数可行

而交换为了增量减小,要交换大于它的最小值

而且交换完之后由于高位原则已经比原数要大了,所以剩下的元素排序即可

结合一下,那么不妨先给后缀排序,然后找 upper_bound ,找到的元素进行交换,因为大小关系是保证的,所以交换完后不需要再排序

class Solution {
public:void nextPermutation(vector<int>& a) {int n = a.size();int mx = a.back();for (int i =  n - 2; i >= 0; i--) {if (a[i] < mx) {reverse(a.begin() + i + 1, a.end());int it = upper_bound(a.begin() + i + 1, a.end(), a[i]) - a.begin();swap(a[it], a[i]);return;} else {mx = max(mx, a[i]);}}reverse(a.begin(), a.end());return;}
};
http://www.jsqmd.com/news/645443/

相关文章:

  • 【AI】 HERMES Agent
  • 避坑指南:StarRocks集群部署前必做的10项环境检查(附AVX2检测脚本)
  • 2026青海装修设计/家装/老房翻新/二手房改造:馨美居装饰领衔 - 深度智识库
  • AudioSeal Pixel Studio详细步骤:FFmpeg自动转码适配多音频格式全流程
  • 从P99延迟飙升到稳定<120ms,我们重写了负载均衡器:5个被大厂内部封禁的调度策略首次公开
  • Zotero插件市场:一站式文献管理插件管理解决方案
  • 上海阿里邮箱服务商哪家比较好?2026年企业选型与服务解析 - 品牌2025
  • 高精度交直流安培表技术解析与应用 —— 以 T24‑A 系列为例 - 品牌推荐大师1
  • Wan2.2-I2V-A14B效果展示:动态模糊/景深变化/镜头运动模拟效果
  • 三阶段解决方案:EdgeRemover深度卸载工具彻底移除Microsoft Edge浏览器残留文件
  • Zotero SciPDF插件终极指南:3步告别付费墙,免费获取学术文献PDF
  • LTSPICE新手避坑指南:从模拟开关仿真到理解电荷泵的基础(以ADG852为例)
  • 企业需要构建一级供应商关系才能真正落地AI战略
  • 微软VibeVoice功能详解:超低帧率分词器如何实现高效长音频合成
  • 5个ComfyUI-Crystools技巧让你告别AI绘图烦恼
  • Windows多语言兼容性终极解决方案:Locale Emulator完全指南
  • 如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发)
  • 为什么92%的多模态大模型在真实场景中失效?——基于17个跨域测试集的鲁棒性归因分析
  • FlipIt翻页时钟屏保:为Windows桌面带来优雅复古时间显示的完整解决方案
  • AI图像生成合规风暴来临(2026全球监管红线白皮书首发):版权、水印、溯源三重防御体系构建实录
  • 告别网盘下载等待:8大平台直链解析完整指南
  • FlyOOBE:让Windows 11安装体验焕然一新的全能助手
  • 告别“无痕模式”:用 Playwright 连接本地 Chrome,让自动化脚本在真实用户环境中运行
  • Foxglove Studio 保姆级安装配置指南:从下载到连接ROS 2全流程
  • Nano-Banana产品拆解引擎:无需3D建模,用照片快速制作产品爆炸图
  • 低代码开发,让企业应用搭建不再难
  • 时间管理利器:滴哦小精灵定时精灵功能全攻略
  • AI Agent 核心方法论深度解析:ReAct、Plan-and-Solve 与 Reflection
  • WinUtil:基于PowerShell WPF的Windows系统配置自动化平台架构解析
  • 3大核心功能解密:如何免费解锁Cursor Pro全部AI编程能力