Leetcode 1配列練習
2202 ワード
leetcode配列練習 66:plus one コード部1 コード部2 31. Next Permutation 題意理解 コード部 66:plus one
コード部1
**主な考え方:**考え方は比較的簡単で、cur位置が9であることを発見した時に長さ[:cur]及び[cur+1:]を切り取り、cur位置処置は0である.
Runtime: 36 ms, faster than 88.65% of Python3 Memory Usage: 12.9 MB, less than 98.54%
コード部2
Runtime: 36 ms, faster than 88.65% of Python3 Memory Usage: 13.2 MB, less than 57.36% of Python3
再帰的な方法:利点:コードが簡潔できれいな欠点:空間の複雑さは少し大きくなります
31. Next Permutation
意味の理解
本題の目標:listを入力し、そのlistの各数字の各種配列の組み合わせを求める場合、本listより大きい次の組み合わせの考え方:listがnums[i-1]を後ろから検索する
コードセクション
Runtime: 36 ms, faster than 97.38% of Python3
Memory Usage: 13.1 MB, less than 78.38%
評価:方法は難しくなく、本輪リストより大きい次の配列の組み合わせをどのように探すかを理解することに重点を置いている.
コード部1
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
l=[1]
c=0
if len(digits)==0:
return digits
cur=len(digits)-1
while cur+1:
if digits[cur]==9:
d1=digits[cur+1:]
digits=digits[:cur]
digits.append(0)
digits.extend(d1)
cur-=1
c=1
else:
digits[cur]+=1
cur=-2
break
if cur==0 or cur==-1:
l.extend(digits)
digits=l
return digits
**主な考え方:**考え方は比較的簡単で、cur位置が9であることを発見した時に長さ[:cur]及び[cur+1:]を切り取り、cur位置処置は0である.
Runtime: 36 ms, faster than 88.65% of Python3 Memory Usage: 12.9 MB, less than 98.54%
コード部2
if len(digits) == 0:
digits = [1]
elif digits[-1] == 9:
digits = self.plusOne(digits[:-1])
digits.extend([0])
else:
digits[-1] += 1
return digits
Runtime: 36 ms, faster than 88.65% of Python3 Memory Usage: 13.2 MB, less than 57.36% of Python3
再帰的な方法:利点:コードが簡潔できれいな欠点:空間の複雑さは少し大きくなります
31. Next Permutation
意味の理解
本題の目標:listを入力し、そのlistの各数字の各種配列の組み合わせを求める場合、本listより大きい次の組み合わせの考え方:listがnums[i-1]を後ろから検索する
コードセクション
class Solution:
def nextPermutation(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
c=1
for i in range(len(nums)-1,0,-1):
if nums[i-1] < nums[i]:
vol=max(nums[i:])
cur=i
for j in range(i,len(nums)):
if nums[j]>nums[i-1] and nums[j]
Runtime: 36 ms, faster than 97.38% of Python3
Memory Usage: 13.1 MB, less than 78.38%
評価:方法は難しくなく、本輪リストより大きい次の配列の組み合わせをどのように探すかを理解することに重点を置いている.