首页 > 其他分享 >leetcode:下一个排列

leetcode:下一个排列

时间:2023-08-09 14:24:09浏览次数:31  
标签:排列 nums 一个 int && 升序 leetcode

 

class Solution {
public:
    void nextPermutation(vector<int>& nums) {
        int n=nums.size();
        int i=n-2;
        while(i>=0 && nums[i]>=nums[i+1]){//从后向前,找到第一个降序的,一直升序说明最大
            i--;
        }
        if(i<0) sort(nums.begin(),nums.end());
        else{
                int j=n-1;
                while(j>i && nums[j]<=nums[i]){//从后向之前标记的位置,找到第一个比标记位小的
                    j--;
                }
                swap(nums[i],nums[j]);
                reverse(nums.begin()+i+1,nums.end());
        }
    }
};

 

标签:排列,nums,一个,int,&&,升序,leetcode
From: https://www.cnblogs.com/lcstudy2021/p/17616749.html

相关文章

  • PHP写一个 Api接口需要注意哪些?考虑哪些?
    随着互联网的飞速发展,前后端分离的开发模式越来越流行。编写一个稳定、可靠和易于使用的API接口是现代互联网应用程序的关键。本文将介绍在使用thinkphp6框架开发API接口时需要注意的要点和考虑的问题,并提供详细的逻辑步骤和代码案例。1.设计请求与响应数据结构在开始编......
  • 用PHP封装一个强大且通用的cURL方法
    用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。/***@function强大且通用的cURL请求库*@param$urlstring路径如:https://example.com......
  • 使用git创建一个空白分支
    使用git创建一个空白分支前言:::block-1最近工作中遇到的一个场景,已迭代到后期的一个项目准备重构,准备从一个新的分支开始,需要清除掉git提交记录。经实践,执行以下几个步骤即可:::1.新建空白分支gitcheckout--orphannew_branch--orphan可让该分支不会指向任何以前的......
  • python实现创建一个银行类,这个类实现了两个方法,第一个方法可以将用户信息写入到文件中
    classbank:defuser_info(self):a=input('请输入用户信息:')#不写encoding='utf-8'中文会乱码withopen('info.txt','w',encoding='utf-8')asf:f.write(a)defget_info(se......
  • LeetCode -- 127. 单词接龙
     方法一:双向广搜classSolution{public:intladderLength(stringbeginWord,stringendWord,vector<string>&wordList){set<string>se;for(autoit:wordList){se.insert(it);}if(!se.count(en......
  • java定时任务中创建多线程却只有一个线程运行的问题
    在定时任务中开启了多线程。。但是却只有第一个线程运行。。原因是?参考:https://www.cnpython.com/java/515558在您的例子中,它是MyRunnable的单个实例,因此当一个线程在synchronized块内执行工作时,所有其他线程将等待工作完成。因此,有效地说,一次只有一个线程在做真正的工作......
  • python计算一个整数列表中所有元素的平均值
    defcalculate_average(numbers):  total=sum(numbers)  average=total/len(numbers)  returnaverage#示例输入number_list=[1,2,3,4,5]#调用函数并打印结果average_value=calculate_average(number_list)print("平均值为:",average_value)......
  • python计算一个整数列表中所有元素的平均值
    defcalculate_average(numbers):  total=sum(numbers)  average=total/len(numbers)  returnaverage#示例输入number_list=[1,2,3,4,5]#调用函数并打印结果average_value=calculate_average(number_list)print("平均值为:",average_value)......
  • LeetCode 热题 100 之 240. 搜索二维矩阵 II
    题目编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例一输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5......
  • 利用 iframe将其他网站 某一个部分的内容 嵌入到 自己的网站中
    [利用iframe将其他网站某一个部分的内容嵌入到自己的网站中_iframe嵌入网页的一部分_奔跑的长毛象的博客-CSDN博客](https://blog.csdn.net/weixin_42654817/article/details/83141889) ```h5<!DOCTYPEhtml><html><head>   <title>HelloWorld</title>   <st......