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...