LeetCode第三十一題 Python實現

2021-10-18 22:48:15 字數 1307 閱讀 4753

title: leetcode no.31

categories:

tags:

實現獲取 下乙個排列 的函式,演算法需要將給定數字序列重新排列成字典序中下乙個更大的排列。

如果不存在下乙個更大的排列,則將數字重新排列成最小的排列(即公升序排列)。

必須 原地 修改,只允許使用額外常數空間。

示例 1:

輸入:nums = [1,2,3]

輸出:[1,3,2]

示例 2:

輸入:nums = [3,2,1]

輸出:[1,2,3]

示例 3:

輸入:nums = [1,1,5]

輸出:[1,5,1]

示例 4:

輸入:nums = [1]

輸出:[1]

1 <= nums.length <= 100

0 <= nums[i] <= 100

class solution(object):

def nextpermutation(self, nums):

""":type nums: list[int]

:rtype: none do not return anything, modify nums in-place instead.

"""length = len(nums) # 總長度

index_a = length - 1

# 從後往前找

while index_a >= 0:

index_b = length - 1

while index_b > index_a :

# 如果大於則交換位置並對前面查詢的內容進行排序

if nums[index_b] > nums[index_a]:

temp = nums[index_a]

nums[index_a] = nums[index_b]

nums[index_b] = temp

tt = nums[index_a + 1:len(nums)]

tt.sort()

nums[index_a+1:len(nums)] = tt

return nums

index_b -= 1

index_a -= 1

nums.reverse()

return nums

if __name__ == '__main__':

s = solution()

print(s.nextpermutation(nums = [1,3,2]))

第三十一天

一 單行函式 每一行都會執行一次的函式 eg pet表中每乙個pname的長度 select pname,char length pname from pet where char length pname 2 char length 列 獲取列的值的字元長度 單行函式的分類 1.數值型別 roun...

LeetCode第三十一題 下乙個排列

問題簡介 給定乙個陣列,將數字重新排列到字典上的下乙個更大的數字排列,當沒有這種排列方式時,即將陣列公升序排列 舉例 1.給定陣列 1,2,4,3,0 結果陣列 1,3,0,2,4 解釋 可以倒序看給定陣列,在數字4處遇見更小的數值2時,從陣列末尾處向前找打第乙個比2大的數字,即3,交換兩個數字,這...

2018 06 06 第三十一天

class testmybufferedstream static void main string args println buffered cost cost println mybuffered cost cost void copyfile throws exception class m...