leetcode 31. 下一个排列

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。

如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。

必须原地修改,只允许使用额外常数空间。

以下是一些例子,输入位于左侧列,其相应输出位于右侧列。
1,2,3 → 1,3,2
3,2,1 → 1,2,3
1,1,5 → 1,5,1

 

先判断是否全是逆序;是逆序只要倒序一下就行。

否则从有往左,找到第一个顺序,说明那里需要修改,然后从后面挑一个最小的大于他的数,交换位置,然后把后面排序就行。

class Solution:
    def nextPermutation(self, nums):
        """
        :type nums: List[int]
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        flag = -1
        for i in range(len(nums)-1,0,-1):
            if nums[i-1] < nums[i]:
                flag = i
                break

        if flag==-1:
            nums.sort()
        else:

            pos = flag
            minn = nums[flag]
            for i in range(flag, len(nums)):
                if minn > nums[i] and nums[i] > nums[flag-1]:
                    minn = nums[i]
                    pos = i

            nums[flag-1] , nums[pos] = nums[pos] , nums[flag-1]
            nums[flag:] = sorted(nums[flag:])

 

转载于:https://www.cnblogs.com/TreeDream/p/10321230.html

【Copula光伏功率预测】基于单调广义学习系统(MBLS)和Copula理论的时空概率预测模型(Matlab代码实现)内容概要:本文介绍了一个基于单调广义学习系统(MBLS)和Copula理论的时空概率预测模型,用于光伏功率预测,并提供了相应的Matlab代码实现。该模型结合了MBLS在非线性映射和快速学习方面的优势,以及Copula函数在刻画多变量随机变量之间复杂相关性结构的能力,能够有效处理光伏发电的不确定性与时空相关性,从而提高预测精度和可靠性。此外,文中还列举了多个相关领域的研究案例和技术应用,展示了其在电力系统、机器学习、路径规划等多个方向的广泛应用前景。; 适合人群:具备一定编程基础和电力系统背景知识,熟悉Matlab编程语言,从事新能源发电预测、电力系统优化等相关领域研究的研发人员和高校师生。; 使用场景及目标:①应用于光伏电站的实际功率预测中,提升电网调度的准确性和稳定性;②作为学术研究工具,探索新型预测算法在处理非线性和不确定性问题上的潜力;③为其他可再生能源如风力发电的概率预测提供借鉴和参考。; 阅读建议:建议读者结合实际数据进行实验验证,深入理解MBLS和Copula理论的核心思想及其实现细节,同时关注模型参数的选择对预测性能的影响,以期达到最佳的应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值