leetcode刷题日记-下一个排列(有点懵)

题目描述

在这里插入图片描述

解题思路

一开始看到这个题目的时候,很懵,理解不了。直接发给我的助手,给我解释了一遍题目的意思,竟然给我输出了答案。我看了解题死理,发现是这么回事。其实看解题思路更能理解这个题目想要表达的意思。首先,逆序找第一个不按照升序排列的数字,记为i,然后从逆序寻找第一个比i所在位置大的下标即为j,交换两个下标对应的元素。然后,从第i+1个位置直至列表的最后,进行元素的交换。完成排列的寻找。

解题代码

class Solution:
    def nextPermutation(self, nums: List[int]) -> None:
        #讲真的,这个确实有点抽象。
        i = len(nums)-2
        while i>=0 and nums[i]>=nums[i+1]:
            i-=1
        if i>=0:
            j=len(nums)-1
            while j>=0 and nums[j]<=nums[i]:
                j-=1
            nums[i],nums[j]=nums[j],nums[i]
        left,right=i+1,len(nums)-1
        while left<right:
            nums[left],nums[right]=nums[right],nums[left]
            left+=1
            right-=1

相关推荐

  1. LeetCode 31. 一个排列

    2024-03-17 21:20:06       66 阅读
  2. leetcode_31.一个排列

    2024-03-17 21:20:06       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 21:20:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 21:20:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 21:20:06       87 阅读
  4. Python语言-面向对象

    2024-03-17 21:20:06       96 阅读

热门阅读

  1. 手动数字哈希表-C语言

    2024-03-17 21:20:06       44 阅读
  2. 突破编程_C++_查找算法(二分查找)

    2024-03-17 21:20:06       48 阅读
  3. [NCNN学习笔记]-1

    2024-03-17 21:20:06       45 阅读
  4. KY127 统计字符

    2024-03-17 21:20:06       43 阅读
  5. PE文件格式知识点汇总

    2024-03-17 21:20:06       42 阅读
  6. 【蓝桥杯】递推与递归

    2024-03-17 21:20:06       46 阅读