"""
设计:Python程序设计
作者:初学者
日期:2022年 04月 19日
"""
# 例105 上一个排列
# 1.问题描述
# 给定一个整数数组表示排列,找出以字典为顺序的上一个排列
# 2.问题示例
# 输入[1,3,2,3],输出[1,2,3,3],输入[1,2,3,4],输出[4,3,2,1]
# 3.代码实现
class Solution:
"""
参数num:整数列表
返回:整数列表
"""
def previous_arrange(self, num):
for i in range(len(num) - 2, -1, -1):
if num[i] > num[i + 1]:
break
else:
num.reverse()
return num
for j in range(len(num) - 1, i, -1):
if num[j] < num[i]:
num[i], num[j] = num[j], num[i]
break
for j in range(0, (len(num) - i) // 2):
num[i + j + 1], num[len(num) - j - 1] = num[len(num) - j - 1], num[i + j + 1]
return num
# 主函数
if __name__ == '__main__':
s = Solution()
num = [1, 3, 2, 3]
print("输入:", num)
print("输出:", s.previous_arrange(num))
上一个排列
最新推荐文章于 2024-05-11 10:37:38 发布