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

LeetCode 刷题【31. 下一个排列】

31. 下一个排列

自己做

解:排序实现

class Solution {
public: void nextPermutation(vector<int>& nums) {int nums_len = nums.size();if(nums_len == 1)          //只有一个元素不处理,直接返回return;int i = nums_len - 2;       //前一元素int j = nums_len - 1;       //后一元素//找到前一元素比后一元素小的元素while(i >= 0 && nums[i] >= nums[j]){j = i;i--;                    //前移}//这里要么发现了前一元素(i = xxx)比后一元素小,要么整个数组都是倒序的(i = -1)//倒序的情况if(i == -1)                                          //如果数组是倒序的return sort(nums.begin(), nums.end());         //升序排序//找到比i大的最小值(从j往后的位置)//将i往后的元素重新排为升序vector<int>::iterator it = nums.begin();for(int z = 0; z < i + 1; z++)          //找到i+1位置的指针it++;sort(it,nums.end());                    //排序i+1往后的元素(升序)for(int z = j; z < nums_len; z++)if(nums[z] > nums[i]){                      //找到了//交换元素int temp = nums[z];nums[z] = nums[i];nums[i] = temp;break;}//交换后重新排序sort(it,nums.end());                    //排序i+1往后的元素(升序)}
};

http://www.dtcms.com/a/317027.html

相关文章:

  • Golang 基本数据类型
  • 【vibe coding】Kubernetes + Nginx Ingress 实现云端Workspace容器分配与域名访问方案
  • Linux lvm逻辑卷管理
  • MySQL间隙锁在查询时锁定的范围
  • lesson32:Pygame模块详解:从入门到实战的2D游戏开发指南
  • Python 3.13 预览版:颠覆性特性与实战指南
  • 项目设计模式草稿纸
  • 电感矩阵-信号完整性分析
  • ob数据库是什么
  • 二维数点问题2
  • 计算机视觉的四项基本任务辨析
  • HPE磁盘阵列管理01——MSA和SMU
  • OpenLayers学习(一)-基础
  • 赛灵思ZYNQ官方文档UG585自学翻译笔记:Quad-SPl Flash 闪存控制器
  • 《Python基础》第3期:使用PyCharm编写Hello World
  • 【力扣 Hot100】 刷题日记
  • linux定时器管理 timer_*系统调用及示例
  • LeetCode 112. 路径总和解题思路详解(BFS算法深入理解)
  • AI模型整合包上线!一键部署ComfyUI,2.19TB模型全解析
  • ES(Elasticsearch)进程掉线(节点脱离集群)问题
  • 协同过滤基础——基线预测器(Baseline Predictors)
  • 深入理解 Ext 系列文件系统:从磁盘物理到文件系统原理
  • QtPromise第三方库的介绍和使用
  • STM32学习笔记2-GPIO的输出模式
  • 宠智灵宠物AI大模型聚焦医疗核心场景,提升临床决策能力
  • Bilateral Reference for High-Resolution Dichotomous Image Segmentation
  • mmsegmentation·数据结构
  • 《零基础入门AI:传统机器学习进阶(从拟合概念到K-Means算法)》
  • 力扣刷题日常(15-16)
  • 深信服GO面试题及参考答案(下)