DW&LeetCode_day6(43、46、53)
前に書く:
- 6日目です。今日から応援を始めましょう!
オープンソースコンテンツ
目次
研究概要
43.文字列の乗算
文字列形式で表される2つの非負の整数num1とnum2が与えられた場合、num1とnum2の積を返し、それらの積も文字列形式で表されます。
例1:
入力:num1 = "2"、num2 = "3"
出力: "6"
例2:入力:num1 = "123"、num2 = "456"
出力: "56088"
説明:num1とnum2の長さは110未満です。
num1とnum2には、0〜9の数字のみが含まれます。
num1もnum2も、それ自体が数値0でない限り、ゼロで始まることはありません。
多数のタイプの標準ライブラリ(BigIntegerなど)を使用したり、入力を整数に直接変換して処理したりすることはできません。
リンク:トピックリンク回答:
# 转化为整数 class Solution: def multiply(self, num1: str, num2: str) -> str: return str(int(num1) * int(num2))
46.完全な配置
繰り返し番号のないシーケンスが与えられた場合、可能なすべての順列を返します。
例:
入力:[1,2,3]
出力:
[
[1,2,3
]、
[1,3,2]、
[2,1,3]、
[2,3,1 ]、[3,1,2 ]、
[3,2,1]
]
リンク:トピックリンク回答:
itertools
反復オブジェクトを操作するための非常に便利な関数を提供します。>>> import itertools >>> natuals = itertools.count(1) >>> for n in natuals: ... print(n) ... 1 2 3 ...
# itertools import itertools class Solution: def permute(self, a: List[int]) -> List[List[int]]: if not a: return [] return [list(i) for i in permutations(a, len(a))]
53.最大サブオーダー合計
整数配列numsが与えられた場合、合計が最大の連続サブ配列を見つけ(サブ配列には少なくとも1つの要素が含まれます)、最大の合計を返します。
例:
入力:[-2,1、-3,4、-1,2,1、-5,4]
出力:6
説明:連続するサブ配列[4、-1,2,1]の合計が最大です、これは6です。
上級:O(n)の複雑さのソリューションをすでに実装している場合は、より微妙な分割統治ソリューションを使用してみてください。
リンク:トピックリンク
回答:
class Solution: def maxSubArray(self, nums: List[int]) -> int: for i in range(1, len(nums)):nums[i]= nums[i] + max(nums[i-1], 0) return max(nums)