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

Leetcode31 下一个排列

一、问题描述

二、解题思路

采用找、换、翻3步骤来解决这个问题:

<1>找:从右向左找到第一个可以增大的位置i,即最小的可以增大的位置;

<2>换:将该位置的数与[i+1,nums.size()-1]区间最小的但大于其的数交换;

<3>翻:将[i+1,nums.size()-1]区间翻转,由于该集合为降序,所以进行逆转,保证增幅最小。

三、代码实现

class Solution { public: void nextPermutation(vector<int>& nums) { //找增幅最小的排列 int n=nums.size(); //1.找:从右向左找到第一个可以增大的位置i int i=n-2; while(i>=0&&nums[i]>=nums[i+1]) i--; //2.换:将该位置的数与[i+1,nums.size()-1]区间最小的大于其的数交换 int j=n-1; if(i>=0){ while(j>i&&nums[j]<=nums[i]) j--; swap(nums[i],nums[j]); } //3.翻:将[i+1,nums.size()-1]区间翻转 reverse(nums.begin()+i+1,nums.end()); } };
http://www.jsqmd.com/news/978704/

相关文章:

  • 告别连接失败:解决RT-Thread下LWIP的sockets与netconn差异问题
  • Spring AI 1.x 系列【43】基于标准输入输出 (STDIO) 与服务端推送事件 (SSE) 的 MCP 服务端
  • 从一次信息泄露事件说起:我是如何用Have I Been Pwned和Reg007保护自己账号的
  • COMSOL仿真避坑指南:搞定自然对流,这些边界条件和求解器设置千万别踩雷
  • ESP32-S2驱动EC11编码器,我踩过的三个坑和最终解决方案(附完整代码)
  • 高光谱图像修复技术:HSI-VAR架构与实战应用
  • Redis分布式锁进阶第三十二篇
  • 告别手动标注!用飞桨EasyDL的‘魔术笔’10分钟搞定4000张语义分割图
  • STM32课程设计避坑指南:从篮球记分器项目看红外遥控与定时器的实战应用
  • STM32F103R6频率计实战工程:Keil编译+Proteus仿真一键运行
  • 保姆级教程:手把手教你搞定华为USG6000V防火墙的跨版本升级(含固件下载与密码重置)
  • 手机App控制51单片机LED?一个HC-06蓝牙模块+串口中断就能搞定(附完整代码)
  • Proteus 8.6 仿真超声波测距,我踩过的坑和调试技巧(附完整工程)
  • GD32F405RGT6 SPI主从模式实战:手把手教你用逻辑分析仪调试时序(附完整工程)
  • 别再让STL模型在CoppeliaSim里‘飘’着了:手把手教你从Mesh到动力学仿真的完整流程
  • 从一次“信息泄露自查”说起:手把手教你用Have I Been Pwned和Reg007保护账号安全
  • 2026年靠谱的镀锌桥架/防火桥架用户口碑推荐厂家 - 行业平台推荐
  • 别再手动改Excel了!用Python的openpyxl批量处理单元格(合并、删除、移动)
  • 金水区郑大北校区购机实测:这3个黑曼巴定制款,竟能避开学区店80%的坑
  • Multisim仿真差动放大电路:从单端/双端输入到共模抑制比,一次搞懂所有测量(附实验数据对比)
  • 别再只跑 nvcc -V 了!CUDA 安装后必做的 5 项深度测试(含 Samples 编译、Pytorch GPU 验证)
  • 每一个你习以为常的 PHP 特性背后,都站着一个伟大的 CS 原理。
  • 从快时钟到慢时钟,脉冲信号CDC漏采怎么办?一个握手机制实例讲透
  • ZLToolKit线程模块源码拆解:从信号量到工作线程池,一个C++网络库的并发设计实战
  • ▲基于OFDM+QPSK的通信链路matlab性能仿真,包含LDPC,Schmidl-Cox频偏估计和MMSE信道估计
  • 【安卓】萌次元壁纸站[特殊字符]纯净免费版[特殊字符]高清壁纸⭕小组件
  • 为什么越来越多人选择聚合平台,而不是独个AI:GPT、Claude、Gemini?
  • Hadoop YARN Web UI保姆级解读:从8088页面看懂你的集群在忙啥
  • 2026年评价高的四川铝合金桥架/四川桥架/四川梯式桥架厂家综合对比分析 - 品牌宣传支持者
  • 2026图片去水印工具推荐,免费图片去水印工具合集