数据结构算法操作试题(C++/Python)——下一个排列

文章目录

    • 1. 题目
    • 2. 解答


数据结构算法操作试题(C++/Python):数据结构算法操作试题(C++/Python)——目录


1. 题目

leetcode 链接:https://leetcode-cn.com/problems/next-permutation/
数据结构算法操作试题(C++/Python)——下一个排列_第1张图片

2. 解答

python:60ms, 10.7mb

class Solution(object):
    def nextPermutation(self, nums):
        """
        :type nums: List[int]
        :rtype: None Do not return anything, modify nums in-place instead.
        """
        preMax, minIndex = -1, 0
        for i in range(len(nums) - 1):
            if nums[i] < nums[i + 1]:
                preMax = i
        if preMax == -1:
            nums.reverse()
            return
        for i in range(preMax + 1, len(nums)):
            if nums[i] > nums[preMax]:
                minIndex = i
        nums[preMax], nums[minIndex] = nums[minIndex], nums[preMax]
        nums[preMax + 1:] = nums[:preMax:-1]

其他方法看 leetcode 链接 评论区~

你可能感兴趣的:(#,1.1,Python,#,1.8,C++,#,2.13,数据结构,Data,Structure,6.,笔试,AND,面试)