[LeetCode] 0238. 自分自身を除く配列の積

自分自身を除く配列の積

Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク

中くらい

 


整数配列が与えられた場合 数字、 戻る 配列 答え そのような 答え[i] のすべての要素の積に等しい 数字 を除外する 数値[i].

次の接頭辞または接尾辞の積 数字 は 保証された に収まる 32ビット 整数。

で実行されるアルゴリズムを作成する必要があります。 の上) 除算演算を使用せずに時間を計算します。

例 1:

入力: 数値 = [1,2,3,4]
出力: [24,12,8,6]

例 2:

入力: 数値 = [-1,1,0,-3,3]
出力: [0,0,9,0,0]

制約:

  • 2 <= nums.length <= 10 5
  • -30 <= nums[i] <= 30
  • 次の接頭辞または接尾辞の積 数字 は 保証された に収まる 32ビット 整数。

フォローアップ: で問題を解決できますか ○(1) 余分な空間の複雑さ (出力配列?) しません スペースの複雑さの分析のための追加スペースとしてカウントされます。)

パイソン

				
					# 時間計算量: O(n) # 空間計算量: import List クラスの入力による O(n) 解決策: def productExceptSelf(self, nums: List[int]) -> List[int]: length = len(nums) lList, rList = [1]*長さ、[1]*長さ lList[0]、rList[長さ - 1] = 1、範囲 (1, 長さ) の i に 1: lList[i] = lList[i-1] * nums[i-1] for i in reversed(range(length-1)): rList[i] = rList[i+1] * nums[i+1] for i in range(length): lList[i] * = rList[i] return lList 配列 = [-1, 1, 0, -3, 3] print(Solution().productExceptSelf(Arrays))
				
			
ja日本語